MergedFile

Слични документи
ELEKTROTEHNIČKI FAKULTET UNIVERZITETA U BEOGRADU BEOGRAD, Ispit iz Programiranja 2 Ispit traje 135 minuta Napomene: a) Pažljivo proučite U

Uvod u računarstvo 2+2

Uvod u računarstvo 2+2

Uvod u računarstvo 2+2

Datoteke predavač: Nadežda Jakšić

Programiranje u C-u ili C++-u Pseudo-slučajni brojevi; Dinamička alokacija memorije 1 ZADACI SA ČASA Zadatak 1 Napraviti funkciju koja generišlučajan

Microsoft PowerPoint - Datoteke [Compatibility Mode]

Programski jezik C

Programski jezici i strukture podataka 2018/2019. Programski jezici i strukture podataka Računarske vežbe vežba 10 Zimski semestar 2018/2019. Studijsk

Računarski praktikum I - Vježbe 03 - Implementacija strukture string

Programski jezici i strukture podataka

Microsoft PowerPoint - 11.Programski_Jezik_C_ulaz-izlaz [Compatibility Mode]

Microsoft PowerPoint - 07-DinamickeStrukturePodataka

Programiranje 2 0. predavanje Saša Singer web.math.pmf.unizg.hr/~singer PMF Matematički odsjek, Zagreb Prog2 2019, 0. predavanje p. 1/4

Funkcije predavač: Nadežda Jakšić

Strukture predavač: Nadežda Jakšić

Programiranje 1 Beleške sa vežbi Školska 2007/2008 godina Matematički fakultet, Beograd Jelena Tomašević December 5, 2007

Microsoft PowerPoint - MR - Vjezbe - 03.ppt [Compatibility Mode]

Tutoring System for Distance Learning of Java Programming Language

PHP kod

070-ALIP2-udzbenik.indb

Programiranje 2 popravni kolokvij, 15. lipnja Ime i prezime: JMBAG: Upute: Na kolokviju je dozvoljeno koristiti samo pribor za pisanje i brisanj

07_PJISP_II_Predavanja

Programiranje II Beleške sa vežbi Smer Informatika Matematički fakultet, Beograd Sana Stojanović 1

Програмирај!

PowerPoint Presentation

Razvoj programa, Code::Blocks, struktura programa, printf, scanf, konverzioni karakteri predavač: Nadežda Jakšić

Uvod u takmičarsko programiranje

Електротехнички факултет Универзитета у Београду Катедра за рачунарску технику и информатику Kолоквијум из Интелигентних система Колоквију

The real problem is that programmers have spent far too much time worrying about efficiency in the wrong places and at the wrong times; premature opti

Programiranje 2 Beleške sa vežbi Školska 2007/2008 godina Matematički fakultet, Beograd Jelena Tomašević February 23, 2008

Tutoring System for Distance Learning of Java Programming Language

VEŽBA 5: KLASE I OBJEKTI U C# Cilj ove vežbe je upoznavanje sa osnovama rada sa klasama i objektima u programskom jeziku C#. Pored toga, bide demonstr

Računarski praktikum I - Vježbe 07 - Podstrukture, const, reference

Grananje u programu predavač: Nadežda Jakšić

Microsoft PowerPoint - C-4-1

Uvod u računarstvo 2+2

OOP1 - domaci 2 (2004/05)

PRIRODNO MATEMATIČKI FAKULTET U NIŠU DEPARTMAN ZA RAČUNARSKE NAUKE Utorak, godine PRIJEMNI ISPIT IZ INFORMATIKE 1. Koja od navedenih ekste

I grupa 1. Napisati program koji izračunava i ispisuje zbir 4 najveća od pet brojeva unetih sa standardnog ulaza. ulaz izlaz Analiza: 1.

Programiranje za UNIX Okruženje unix procesa

Konstrukcija i analiza algoritama vežbe 10 Nina Radojičić 15. decembar Algoritamske strategije - podeli pa vladaj (divide and conquer) Ova stra

Računarski praktikum I - Vježbe 01 - Uvod

Programiranje 1 5. predavanje dodatak Saša Singer web.math.pmf.unizg.hr/~singer PMF Matematički odsjek, Zagreb Prog1 2018, 5. predavanj

PowerPoint Presentation

Programiranje 2 7. predavanje Saša Singer web.math.pmf.unizg.hr/~singer PMF Matematički odsjek, Zagreb Prog2 2019, 7. predavanje p. 1/7

Microsoft PowerPoint - Bitovi [Compatibility Mode]

Univerzitet u Novom Sadu Tehnički fakultet Mihajlo Pupin Zrenjanin Seminarski rad Predmet: Konkuretno programiranje doc. dr Dejan Lacmanovic Zorica Br

Microsoft Word - AIDA2kolokvijumRsmerResenja.doc

PowerPoint Presentation

Microsoft PowerPoint - Programski_Jezik_C_Organizacija_Izvrsnog_Programa [Compatibility Mode]

MIP-heuristike (Matheuristike) Hibridi izmedu metaheurističkih i egzaktnih metoda Tatjana Davidović Matematički institut SANU

Funkcije predavač: Nadežda Jakšić

Државно такмичење године 5. и 6. разред 1. [pločice] Правоугаону терасу димензија d s центиметара квадратних треба поплочати коришћењем плочица

Test ispravio: (1) (2) Ukupan broj bodova: 21. veljače od 13:00 do 14:00 Županijsko natjecanje / Osnove informatike Osnovne škole Ime i prezime

Microsoft PowerPoint - 10-Jednodimenzionalni nizovi.ppt [Compatibility Mode]

Programski jezik C

PowerPoint Presentation

Microsoft PowerPoint - Programski_Jezik_C_Organizacija_Izvornog_Programa_I_Greske [Compatibility Mode]

Programiranje 1 drugi kolokvij, 2. veljače Ime i prezime: JMBAG: Upute: Na kolokviju je dozvoljeno koristiti samo pribor za pisanje i brisanje,

1. OPĆE INFORMACIJE 1.1. Naziv kolegija Programiranje 1.6. Semestar Nositelj kolegija dr.sc. Bruno Trstenjak, v. pred Bodovna vrijednost

Pojačavači

Microsoft PowerPoint - 12-Funkcije_1.ppt [Compatibility Mode]

ELEKTROTEHNIČKI FAKULTET, UNIVERZITET U BEOGRADU KATEDRA ZA ELEKTRONIKU UVOD U ELEKTRONIKU - 13E041UE LABORATORIJSKA VEŽBA Primena mikrokontrolera

1 jmbag ime i prezime Programiranje 2 prvi kolokvij, Rezultati i uvidi u kolokvije: Rezultati u petak, 3.5., navečer na webu, a uvidi u p

P11.3 Analiza zivotnog veka, Graf smetnji

Република Србија МИНИСТАРСТВО ПРОСВЕТЕ, НАУКЕ и технолошког развоја ЗАВОД ЗА ВРЕДНОВАЊЕ КВАЛИТЕТА ОБРАЗОВАЊА И ВАСПИТАЊА ЗАВРШНИ ИСПИТ НА КРАЈУ ОСНОВН

Република Србија МИНИСТАРСТВО ПРОСВЕТЕ, НАУКЕ И ТЕХНОЛОШКОГ РАЗВОЈА ЗАВОД ЗА ВРЕДНОВАЊЕ КВАЛИТЕТА ОБРАЗОВАЊА И ВАСПИТАЊА ЗАВРШНИ ИСПИТ У ОСНОВНОМ ОБРА

Република Србија МИНИСТАРСТВО ПРОСВЕТЕ, НАУКЕ И ТЕХНОЛОШКОГ РАЗВОЈА ЗАВОД ЗА ВРЕДНОВАЊЕ КВАЛИТЕТА ОБРАЗОВАЊА И ВАСПИТАЊА ЗАВРШНИ ИСПИТ У ОСНОВНОМ ОБРА

Računarski praktikum I - Vježbe 09 - this, static

Република Србија МИНИСТАРСТВО ПРОСВЕТЕ, НАУКЕ И ТЕХНОЛОШКОГ РАЗВОЈА ЗАВОД ЗА ВРЕДНОВАЊЕ КВАЛИТЕТА ОБРАЗОВАЊА И ВАСПИТАЊА ЗАВРШНИ ИСПИТ НА КРАЈУ ОСНОВН

KATALOG ZNANJA IZ INFORMATIKE

studirko.com predstavlja: Večernja škola C# za FPZ ( ) v 4.0 Za studirko.com napisao: Slaven Špigl

Microsoft Word - 1_Uputstvo-za-ocenjivanje_ZI-2018_Matematika Jun.doc

Primenjeno programiranje - vezbe GUI i baze podataka

Microsoft Word - Zadaci za samostalno vjezbanje 4.doc

1. Vremensko ograničenje Memorijsko ograničenje ulaz izlaz 0,1 s 64 MB standardni ulaz standardni izlaz Banka želi da upozori kupce na sumnjive aktivn

PROGRAMIRANJE Program je niz naredbi razumljivih računalu koje rješavaju neki problem. Algoritam je postupak raščlanjivanja problema na jednostavnije

Programiranje 1 9. predavanje Saša Singer web.math.pmf.unizg.hr/~singer PMF Matematički odsjek, Zagreb Prog1 2018, 9. predavanje p. 1/6

NIZOVI

ggmap

Република Србија МИНИСТАРСТВО ПРОСВЕТЕ, НАУКЕ И ТЕХНОЛОШКОГ РАЗВОЈА ЗАВОД ЗА ВРЕДНОВАЊЕ КВАЛИТЕТА ОБРАЗОВАЊА И ВАСПИТАЊА ЗАВРШНИ ИСПИТ У ОСНОВНОМ ОБРА

PASCAL UVOD 2 II razred gimnazije

PowerPoint Presentation

PORTAL KATEDRE ZA MEDICINSKU STATISTIKU I INFORMATIKU uputstvo za pristup i korišćenje Ovo uputstvo podrazumeva da studenti imaju osnovno znanje koriš

Република Србија МИНИСТАРСТВО ПРОСВЕТЕ, НАУКЕ И ТЕХНОЛОШКОГ РАЗВОЈА ЗАВОД ЗА ВРЕДНОВАЊЕ КВАЛИТЕТА ОБРАЗОВАЊА И ВАСПИТАЊА ТЕСТ МАТЕМАТИКА УПУТСТВО ЗА О

Objektno orjentirano programiranje

Microsoft PowerPoint - 13-Funkcije_2.ppt [Compatibility Mode]

Uvod u PHP

Република Србија МИНИСТАРСТВО ПРОСВЕТЕ, НАУКЕ И ТЕХНОЛОШКОГ РАЗВОЈА ЗАВОД ЗА ВРЕДНОВАЊЕ КВАЛИТЕТА ОБРАЗОВАЊА И ВАСПИТАЊА ЗАВРШНИ ИСПИТ НА КРАЈУ ОСНОВН

PowerPoint Presentation

Slide 1

Република Србија МИНИСТАРСТВО ПРОСВЕТЕ, НАУКЕ И ТЕХНОЛОШКОГ РАЗВОЈА ЗАВОД ЗА ВРЕДНОВАЊЕ КВАЛИТЕТА ОБРАЗОВАЊА И ВАСПИТАЊА ЗАВРШНИ ИСПИТ У ОСНОВНОМ ОБРА

Logicko projektovanje racunarskih sistema I

Република Србија МИНИСТАРСТВО ПРОСВЕТЕ, НАУКЕ И ТЕХНОЛОШКОГ РАЗВОЈА ЗАВОД ЗА ВРЕДНОВАЊЕ КВАЛИТЕТА ОБРАЗОВАЊА И ВАСПИТАЊА ЗАВРШНИ ИСПИТ НА КРАЈУ ОСНОВН

Microsoft PowerPoint - JavaP9_2019

23. siječnja od 13:00 do 14:00 Školsko natjecanje / Osnove informatike Srednje škole RJEŠENJA ZADATAKA S OBJAŠNJENJIMA Sponzori Medijski pokrovi

NAPOMENA: Studenti na ispit donose kod urađenog zadatka

Programiranje predavanje Saša Singer web.math.pmf.unizg.hr/~singer PMF Matematički odsjek, Zagreb Prog1 2016, 10. predavanje p. 1

Информатичка одељења Математика Република Србија Министарство просвете, науке и технолошког развоја Завод за вредновање квалитета образовања и васпита

Транскрипт:

ELEKTROTEHNIČKI FAKULTET UNIVERZITETA U BEOGRADU BEOGRAD, 18.09.2018. Ispit iz Programiranja 2 Ispit traje 135 minuta Napomene: a) Pažljivo proučite Uputstvo pre popunjavanja Obrasca za odgovore. b) Vrednost odgovora: tačan = 5; netačan = -1.25; nevažeći (nula ili više zacrnjenih kružića) = 0. c) Na pitanjima se može osvojiti najviše 20 poena. Prvi zadatak nosi 20 poena, dok drugi nosi 25 poena. I ZADACI 1)Potrebno je napisati program na programskom jeziku C koji ispisuje jedan zatvoreni ciklus u igri dodavanja loptom. Igru započinje prvi igrač koji loptu dodaje sledećem najbližem igraču. Zatim taj igrač loptu dodaje sledećem najbližem i itd., pod uslovom da to nije isti onaj koji mu je upravo dodao loptu. Napisati potprogram int findthenearestone(int *distancesfromothers, int playerscnt, int lastplayerindex) koji određuje indeks prvog igrača koji je najbliži tekućem, znajući razdaljine između tekućeg i svih ostalih igrača (uključujući i tekućeg, kada je razdaljina 0), ukupnog broja igrača u igri, kao i indeks igrača od kojeg je tekući primio loptu (vrednost - 1 označava da nije bilo prethodnog igrača, jer je igra tek započeta). Napisati program koji ispisuje indekse igrača po redosledu dodavanja u igri, ukoliko su informacije o razdaljinama između igrača date u fajlu playerdistances.txt. Glavni program treba najpre iz prvog reda datoteke da učita indeks igrača koji započinje igru, kao i broj igrača N, a zatim da iz narednih N redova čita po N vrednosti koje redom predstavljaju udaljenosti svakog pojedinačnog igrača od svih ostalih (uključujući i sebe, kada je razdaljina 0). Nakon učitavanja informacija o razdaljinama, program treba da odredi jedan zatvoreni ciklus igrača u igri po redosledu dodavanja loptom, čije indekse ispisuje na standarnom izlazu. Potprogrami sa glavnim programom komuniciraju isključivo putem argumenata i povratne vrednosti. Nije potrebno proveravati ispravnost ulaznih podataka. Primer ulazne datoteke Primer izlaza 0 4 0 1 2 0 0 3 4 3 3 0 5 6 4 5 0 5 3 6 5 0 2)Napisati program na programskom jeziku C koji pomaže brucošu Mikiju da iznajmi stan. Spisak stanova za iznajmljivanje je dat u teksutalnoj datoteci stanovi.txt. U svakom redu se nalaze identifikacioni broj stana (ceo broj), cena iznajmljivanja (realan broj) i geografska širina i dužina lokacije na kojoj se stan nalazi (realni brojevi) u Dekartovom koordinatnom sistemu. Miki želi da živi u stanu koji se nalazi u određenom radijusu u odnosu na fakultet čije se koordinate mogu smatrati centrom posmatranog koordinatnog sistema. Program najpre treba da učita realan broj koji predstavlja radijus pretrage u odnosu na lokaciju fakulteta, pročita sadržaj ulazne datoteke i u izlaznu datoteku stanovi_filtrirano.txt ispiše sve stanove koji zadovoljavaju zadati kriterijum, uređene neopadajuće po ceni po istom formatu kao kod ulazne datoteke. Voditi računa o ispravnom korišćenju dinamičke memorije. Primer ulazne datoteke 54 200 150.0 200.0 17 150 550.0 250.0 33 175 280.5 350.1 Primer izlazne datoteke za radijus 500 metara 33 175 280.5 350.1 54 200 150.0 200.0 II PITANJA 1)Koje od ponuđenih tvrdnji su tačne za programski jezik C? A) Funkcija fopen vraća vrednost EOF ukoliko dođe do neuspešnog otvaranja datoteke. (B) Funkcija feof vraća vrednost različitu od 0 samo ukoliko je indikator kraja datoteke postavljen od strane neke funkcije za čitanje datoteke. C) Čitanje binarnih datoteka se može obaviti funkcijom fscanf korišćenjem konverzije %b. 2)Šta ispisuje sledeći program napisan na programskom jeziku C? #define N 4 void main() { int i, b[n] = {2, 0, 1, 8, **a = (int**)calloc(n, sizeof(int*)); for (i = N-1; i >= 0; i--) *(a+i) = b + N - i - 1; for (i = 0; i < N; i++) printf("%d ", *a[i]); free(a); (A) 8 1 0 2 B) 3 1 2 9 C) 2 0 1 8 3)Šta ispisuje sledeći program napisan na programskom jeziku C ako funkcija free_struct ispravno briše svu alociranu memoriju? s1.text2 = malloc(10); strcpy(s1.text2, s1.text1); #include <string.h> s2 = s1; struct exam { s1.text1[2] = '1'; char text1[10]; s1.text2[2] = '1'; char *text2; ; printf("%c%c", s2.text1[2], s2.text2[2]); int main() { free_struct(&s1, &s2); struct exam s1, s2; return 0; strcpy(s1.text1, "okt"); A) tt B) 1t (C) t1 4)Šta ispisuje sledeći program na programskom jeziku C ukoliko su u jednostruko ulančanu listu lst1 redom uneseni brojevi 8 3 6 9 1, a u jednostruko ulančanu listu lst2 redom uneseni brojevi 3 12 1 7? Smatrati da funkcija citaj ispravno formira, a funkcija pisi ispravno ispisuje sadržaj zadate liste redom od početka. typedef struct elem { int broj; struct elem *sled; Elem; Elem *okt_fun(elem *lst1, Elem *lst2); void main () { Elem *lst, *lst1, *lst2; lst1 = citaj(); lst2 = citaj(); lst = okt_fun(lst1, lst2); pisi(lst); brisi(lst); Elem *okt_fun(elem *lst1, Elem *lst2) { Elem *lst = NULL, *posl = NULL, *tek; while (lst1 && lst2) { if (lst1->broj > lst2->broj) tek = lst1; else tek = lst2; lst1 = lst1->sled; lst2 = lst2->sled; tek->sled = NULL; if (!lst) lst = tek; else posl->sled = tek; posl = tek; return lst; (A) 8 12 6 9 B) 3 3 1 7 1 C) 8 3 12 9 7 5)Šta ispisuje sledeći program napisan na programskom jeziku C ako se sa standardnog ulaza unese easyguess? #include <string.h> void manipulatestring(char *str) { char cnt[127] = {0, *p = str, *q; while(*p) cnt[*p++]++; q = str + strlen(str) - 1; while(str<q) { while(str<q &&!(cnt[*str]&1)) str++; while(str<q &&!(cnt[*q]&1)) q--; if(str<q) { char t = *str; *str = *q; *q = t; str++; q--; //end_while //_end_function int main(void) { char str[20]; scanf("%s", str); manipulatestring(str); printf("%s\n", str); A) eseugysas (B) essugyesa C) sseugysae

13S111P2, Programiranje 2, oktobar 2017/2018. Rešenje zadatka Zadatak 1 Potrebno je napisati program na programskom jeziku C koji ispisuje jedan zatvoreni ciklus u igri dodavanja loptom. Igru započinje prvi igrač koji loptu dodaje sledećem najbližem igraču. Zatim taj igrač loptu dodaje sledećem najbližem i itd., pod uslovom da to nije isti onaj koji mu je upravo dodao loptu. Napisati potprogram int findthenearestone(int *distancesfromothers, int playerscnt, int lastplayerindex) koji određuje indeks prvog igrača koji je najbliži tekućem, znajući razdaljine između tekućeg i svih ostalih igrača (uključujući i tekućeg, kada je razdaljina 0), ukupnog broja igrača u igri, kao i indeks igrača od kojeg je tekući primio loptu (vrednost -1 označava da nije bilo prethodnog igrača, jer je igra tek započeta). Napisati program koji ispisuje indekse igrača po redosledu dodavanja u igri, ukoliko su informacije o razdaljinama između igrača date u fajlu playerdistances.txt. Glavni program treba najpre iz prvog reda datoteke da učita indeks igrača koji započinje igru, kao i broj igrača N, a zatim da iz narednih N redova čita po N vrednosti koje redom predstavljaju udaljenosti svakog pojedinačnog igrača od svih ostalih (uključujući i sebe, kada je razdaljina 0). Nakon učitavanja informacija o razdaljinama, program treba da odredi jedan zatvoreni ciklus igrača u igri po redosledu dodavanja loptom, čije indekse ispisuje na standarnom izlazu. Potprogrami sa glavnim programom komuniciraju isključivo putem argumenata i povratne vrednosti. Nije potrebno proveravati ispravnost ulaznih podataka. #define FILE_ERROR 1 #define ALLOCATION_ERROR 2 #define INVALID_INDEX -1 #define COPEN_FILE(fhandle, filename, mode)\ if((fhandle = fopen(filename, mode)) == 0) exit(file_error); #define CMALLOC(ptr, size)\ if((ptr = malloc(size)) == 0) exit(allocation_error); void releasememory(int **a, int dim){ for(int i = 0; i < dim; i++) free(a[i]); free(a); void readdata(file *fhandle, int ***distances, int *playerscnt, int *startplayer){ int** d; fscanf(fhandle, "%d %d", startplayer, playerscnt); CMALLOC(d, sizeof(int*) * (*playerscnt)); for(int i = 0; i < *playerscnt; i++){ d[i] = malloc(sizeof(int) * (*playerscnt)); for(int j = 0; j < *playerscnt; j++) fscanf(fhandle, "%d", &d[i][j]); (*distances) = d; int findthenearestone(int *distancesfromothers, int playerscnt, int lastplayerindex){ int *d = distancesfromothers; int minind = INVALID_INDEX; for(int i = 0; i < playerscnt; i++) if(d[i]!= 0 && i!= lastplayerindex && (minind == INVALID_INDEX d[minind] > d[i])) minind = i; return minind;

void findloop(int **distances, int playerscnt, int startplayer){ int currplayer = startplayer, prevplayer = -1, nextplayer; do { printf("%d ", currplayer); nextplayer = findthenearestone(distances[currplayer], playerscnt, prevplayer); prevplayer = currplayer; currplayer = nextplayer; while (currplayer!= startplayer); printf("%d", currplayer); int main(){ FILE *distancesfile; int **distances; int playerscnt, startplayer; // -- CodeLite::'playerDistances.txt' and src file are in the same dir // COPEN_FILE(distancesFile, "..\\playerdistances.txt", "r"); readdata(distancesfile, &distances, &playerscnt, &startplayer); findloop(distances, playerscnt, startplayer); fclose(distancesfile); releasememory(distances, playerscnt); return 0; Suma: 20

13S111P2, Programiranje 2, oktobar 2017/2018. Rešenje zadatka Zadatak 2 Napisati program na programskom jeziku C koji pomaže brucošu Mikiju da iznajmi stan. Spisak stanova za iznajmljivanje je dat u teksutalnoj datoteci stanovi.txt. U svakom redu se nalaze identifikacioni broj stana (ceo broj), cena iznajmljivanja (realan broj) i geografska širina i dužina lokacije na kojoj se stan nalazi (realni brojevi) u Dekartovom koordinatnom sistemu. Miki želi da živi u stanu koji se nalazi u određenom radijusu u odnosu na fakultet čije se koordinate mogu smatrati centrom posmatranog koordinatnog sistema. Program najpre treba da učita realan broj koji predstavlja radijus pretrage u odnosu na lokaciju fakulteta, pročita sadržaj ulazne datoteke i u izlaznu datoteku stanovi_filtrirano.txt ispiše sve stanove koji zadovoljavaju zadati kriterijum, uređene neopadajuće po ceni po istom formatu kao kod ulazne datoteke. Voditi računa o ispravnom korišćenju dinamičke memorije. #include <math.h> typedef struct stan { int id_stana; double cena, geo_x, geo_y; Stan; typedef struct elem { Stan stan; struct elem *sled; Elem; Elem *citaj_stanove(file *ulaz) { Elem *prvi, *posl, *novi; int id_stana; double cena, geo_x, geo_y, r; prvi = posl = NULL; while ((fscanf(ulaz, "%d %lf %lf %lf", &id_stana, &cena, &geo_x, &geo_y)) > 0) { novi = malloc(sizeof(elem)); if (!novi) { printf("greska pri radu sa din. memorijom!\n"); return 2; novi->stan.id_stana = id_stana; novi->stan.cena = cena; novi->stan.geo_x = geo_x; novi->stan.geo_y = geo_y; novi->sled = NULL; if (!prvi) prvi = novi; else posl->sled = novi; posl = novi; return prvi; void pisi_stanove(elem *prvi, double r, FILE *izlaz) { Elem *tek; tek = prvi; while (tek) { if (sqrt(tek->stan.geo_x*tek->stan.geo_x + tek->stan.geo_y*tek->stan.geo_y) < r) fprintf(izlaz, "%d %.2lf %.3lf %.3lf\n", tek->stan.id_stana, tek->stan.cena, tek- >stan.geo_x, tek->stan.geo_y); tek = tek->sled; void sortiraj_stanove(elem *prvi) { Elem *tek1, *tek2; tek1 = prvi; while (tek1->sled) { tek2 = tek1->sled; while (tek2) { if (tek1->stan.cena > tek2->stan.cena) { Stan temp = tek1->stan; tek1->stan = tek2->stan;

tek2->stan = temp; tek2 = tek2->sled; tek1 = tek1->sled; void dealociraj(elem *prvi) { Elem *stari; while (prvi) { stari = prvi; prvi = prvi->sled; free(stari); int main() { FILE *ulaz, *izlaz; Elem *prvi; double r; ulaz = fopen("stanovi.txt", "r"); izlaz = fopen("stanovi_filtrirano.txt", "w"); if (!ulaz!izlaz) { printf("greska pri radu sa datotekom!\n"); return 1; printf("unesite radijus stana za pretragu: "); scanf("%lf", &r); prvi = citaj_stanove(ulaz); sortiraj_stanove(prvi); pisi_stanove(prvi, r, izlaz); dealociraj(prvi); fclose(ulaz); fclose(izlaz); return 0; Suma: 25