OO1PP1 – DZ5                                                                                   Rok za izradu: 26.01.2007.

PRAKTIKUM IZ PROGRAMIRANJA 1

- domaći zadatak broj 5 -

Sastaviti program 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 u toku obrade dobijene rezultate;

d) poziva potprogram koji listu briše iz memorije;

e) ponavlja prethodne korake dok se za ime ulazne datoteke ne unese prazan string.

Zavisno od rednog broja problema koji se rešava, sastaviti program, kojim se:

  1. obrađuje lista nebeskih tela; jedan zapis binarne datoteke sadrži naziv tela, šifru, tip (planeta, zvezda, asteroid), prečnik i udaljenost od Zemlje; iz liste je potrebno izbaciti sva ona tela prečnika manjeg Rmin, a zatim u tekst datoteku upisati preostala tela;
  2. računa ocena studenta na PP1, prema pravilima predmeta; jedan zapis binarne datoteke sadrži ime i prezime studenta, broj indeksa i broj osvojenih poena; potrebno je izračunati ocene svih studenata, izbaciti iz liste one studente koji nisu dobili pozitivnu ocenu, te imena, prezimena i ocene preostalih studenata upisati u tekst datoteku;
  3. vrši sabiranje svih onih kompleksnih brojeva čiji je imaginarni deo negativan, a potom njihovo izbacivanje iz liste; jedan slog binarne datoteke sadrži podatke o realnom i imaginarnom delu kompleksnog broja; preostale brojeve je potrebno upisati u tekst datoteku po formatu Re+jIm, odnosno Re-jIm, jedan broj po redu;
  4. računa dužina izlomljene linije predstavljene pomoću liste tačaka; dve uzastopne tačke predstavljaju jedan segment izlomljene linije; jedan zapis binarne datoteke sadrži x i y koordinate tačke; potrebno je izračunati dužinu linije, a zatim dve najudaljenije uzastopne tačke izbaciti iz liste i izračunati novu dužinu linije; rezultujuću listu upisati u tekst datoteku, informacije o svakoj tački u zasebnoj liniji;
  5. vrši analiza podataka prikupljenih od strane automatske meteo stanice; jedan zapis binarne datoteke sadrži podatke o satu i minutu merenja, temperaturi, pritisku i vlažnosti vazduha; poznato je da temperaturni senzor ima defekt, pa ponekad vraća nemoguću vrednost -1000.0; izbaciti iz liste merenja kod kojih se desilo defektno očitavanje temperature, a zatim odrediti minimalnu, maksimalnu i prosečnu temperaturu; rezultujuću listu upisati u tekst datoteku;

Elementi liste su zapisi koji imaju 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 primera ulaznih podataka sa kojima će se program testirati, kao i očekivani izlaz za odabrane primere. 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, sa kojom će se kasnije raditi u glavnom programu.

Napomene:

1.   Odbrana petog domaćeg zadatka je u petak, 26.01.2006. godine. Tačni termini za sve studente će biti blagovremeno objavljeni na sajtu predmeta.

2.   Formula za redni broj problema i koji treba rešavati je sledeća (R – redni broj indeksa, G – poslednje dve cifre godine upisa): i = (R + G) mod 5

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.

13.01.2007. godine                                                                                                  sa predmeta