OO1PP1 – DZ5 Rok za izradu: 18.01.2008.
PRAKTIKUM IZ PROGRAMIRANJA 1
- domaći zadatak broj 5 -
Sastaviti program na programskom jeziku Pascal koji radi sa listama i datotekama na sledeći način:
a) poziva potprogram koji učitava sve potrebne podatke iz ulazne binarne datoteke u jednostruko ulančanu listu, tako da redosled podataka bude isti i u datoteci i u listi;
b) poziva odgovarajući potprogram koji izvrši traženu obradu nad datom listom;
c) poziva potprogram koji ispisuje sve rezultate dobijene u toku obrade;
d) poziva potprogram koji listu briše iz memorije;
e) ponavlja prethodne korake dok za ime ulazne datoteke korisnik ne unese prazan string.
Zavisno od rednog broja varijante zadatka, sastaviti program, koji:
0. vrši računanje ocena i poredak skakača za skijaške skokove; jedan zapis binarne datoteke sadrži podatke o imenu i prezimenu skakača, dužini skoka i srednjoj oceni sudija; konačna ocena određena je dvema veličinama (dužinu skoka pomnoženu sa 0.6 treba sabrati srednjom ocenom sudija pomnoženom sa 0.4); poredak skakača upisati u odgovarajuću tekst datoteku;
1. iz liste tačaka u ravni uklanja najdalju od koordinatnog početka; zapis ulazne datoteke sadrži apscisu i ordinatu tačke; rezultujuću listu upisati u tekst datoteku, jednu tačku u svakom redu;
2. određuje i izbacuje tačku najbližu sredini izlomljene linije predstavljene pomoću liste tačaka; pronađena tačka treba da deli liniju tako da je apsolutna vrednost razlike dužina linije pre i nakon te tačke minimalna; jedan zapis binarne datoteke sadrži koordinate tačke u ravni; rezultujuću listu upisati u tekst datoteku, jednu tačku u svakom redu;
3. vrši izbor pobednika na tenderu; jedan zapis binarne datoteke sadrži podatke o šifri ponuđača, ceni, broju dana potrebnom za isporuku, broju rata na koje se roba može platiti; potrebno je formirati rang listu ponuda i upisati je u tekst datoteku; ocenu ponude računati po formuli 10*cena-isporuka+2*br_rata; pre računanja ocene ponude, iz liste je potrebno izbaciti sve ponude čija cena premašuje maksimalnu cenu, koju korisnik unosi sa glavnog ulaza;
4. iz liste koja sadrži termine zauzetosti nekih sala (početak i kraj termina, broj sale) izbacuje one koji se preklapaju; jedan zapis binarne datoteke sadrži podatke o broju sale i početku i kraju zauzetog termina; rezultujuću listu upisati u tekst datoteku, jedan termin po redu datoteke;
5. iz date liste elemenata, koji predstavljaju kružnice u istoj ravni, izbacuju sve one koje se presecaju više od n puta sa drugim kružnicama u listi; broj presecanja odrediti za sve kružnice pre početka izbacivanja; jedan zapis binarne datoteke sadrži x i y koordinate centra i poluprečnik r; rezultujuću listu upisati u tekst datoteku, jednu kružnicu u svakom redu;
Elementi liste su zapisi sa dva polja. Prvo polje je tipa zapisa, čija polja sadrže sve bitne podatke, prema tekstu zadatka. Drugo polje je pokazivač na sledeći element liste. Format izlazne tekst datoteke usvojiti prema tekstu zadatka, tako da sadrži relevantne, ali ne i nepotrebne informacije. Ako nešto u postavci zadatka nije dovoljno precizno definisano ili ako su neki od zahteva međusobno suprotstavljeni, usvojiti razumnu pretpostavku i rešiti zadatak korišćenjem te pretpostavke. Osmisliti i napisati na papiru nekoliko test-primera (ulaz i očekivani izlaz). Potprogrami ne smeju pristupati promenljivama glavnog programa direktno, već samo putem svojih argumenata.
Važno: napraviti i pomoćni program koji čita podatke sa standardnog ulaza i upisuje ih u binarnu datoteku, koju će kasnije glavni program koristiti kao ulaznu.
Napomene:
1. Odbrana petog domaćeg zadatka je u petak, 18.01.2008. u RC ETF. Tačni termini za sve studente će biti blagovremeno objavljeni u okviru sistema WebLab.
2. Formula za redni broj problema i koji treba rešavati je i = (R + G) mod 6 (R – redni broj indeksa, G – poslednje dve cifre godine upisa):
3. Kao rešenje domaćeg zadatka potrebno je na odbrani pokazati sledeće datoteke:
· dz5.PAS, koja sadrži izvorni tekst osnovnog programa na programskom jeziku Pascal;
· dz5_pom.pas, koja sadrži izvorni tekst pomoćnog programa.
08.01.2008. godine sa predmeta