OO1PP1 – DZ4                                                                                   Rok za izradu: 15.01.2008.

PRAKTIKUM IZ PROGRAMIRANJA 1

- domaći zadatak broj 4 -

Sastaviti glavni program koji radi sa tekst datotekama po sledećem redosledu izvršavanja:

a)   poziva potprogram koji učitava imena datoteka sa kojima će raditi,

b)  poziva odgovarajući potprogram koji izvrši zahtevanu obradu nad ulaznim podacima,

c)   poziva potprogram koji ispisuje rezultate izvršavanja obrade (imena datoteka i statistiku)

d)  ponavlja prethodne korake sve dok korisnik za ime datoteke ne zada prazan string.

Zavisno od rednog broja varijante zadatka, sastaviti jedan od sledećih programa na programskom jeziku Pascal, koji:

0.   prepisuje spisak studenata iz ulazne datoteke (format IME PREZIME GGGGBBBB 12 23 34) u novu datoteku (format BBBB/GG PREZIME IME 7); GGGG predstavlja godinu upisa, GG poslednje dve cifre godine upisa, tri cela broja ulazne datoteke uspeh na delovima ispita, celi broj u izlaznoj datoteci konačnu ocenu koja se određuje prema zbiru poena na sva tri dela (51 poen za 6, 61 poen za 7, maksimalni broj poena 100);

1.   prepisuje spisak studenata iz ulazne datoteke (format BBBB/GG PREZIME IME 6) u dve nove datoteke (format BBBBGGGG Ime Prezime); smisao podataka je isti kao kod 0. varijante zadatka; izlazna datoteka je određena činjenicom da li je student položio ispit ili ne;

2.   prepisuje iz ulazne datoteke u izlaznu samo one linije koje predstavljaju tzv. dancing sekvencu; dancing sekvenca slova je ona kod koje je prvo slovo veliko ili malo, a zatim se naizmenično smenjuju mala i velika slova uz ignorisanje belih znakova (npr. PrA kTi KuM);

3.   prepisuje sadržaj ulazne u izlaznu tekst datoteku; ulazni tekst može sadržati brojeve za kojima sledi oznaka za temperaturu (C – Celzijus, F – Farenhajt); potrebno je izvršiti konverziju ovih brojeva tako da u izlaznom tekstu sve vrednosti temperatura budu izražene u stepenima Celzijusa ([°C] = ([°F] − 32) · 5/9);

4.   prepisuje sadržaj ulazne datoteke, koji može sadržati datume po formatu dd-mm-gggg, tako da format datuma bude izmenjen; umesto mm (koji označava mesec) treba da stoji naziv meseca (npr. 04 će biti zamenjeno sa April);

5.   iz ulazne datoteke koja sadrži podatke o boji, gustini i prečniku kuglica (primer jednog reda: crvena 123.4 56.789) u novu prepisuje samo podatke o kuglicama mase veće od MAX; podaci o ostalim kuglicama treba da budu ispisani na standardnom izlazu u okviru ove obrade.

Program treba da čita ulaznu datoteku uz vođenje računa o tipu čitanog podataka. Pri prepisivanju u nove datoteke, očuvati prvobitnu uređenost teksta po redovima. Dužine redova smatrati manjim od 80. Prilikom obrade teksta, izračunati statistiku pojavljivanja samoglasnika, suglasnika, velikih i malih slova, cifara i ostalih znakova u ulaznoj tekst datoteci i dobijene rezultate ispisati na standardnom izlazu. 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. Potprogrami ne smeju pristupati promenljivama glavnog programa direktno, već samo putem svojih argumenata.

Važno: za sve podatke koje ima smisla grupisati, osmisliti sopstveni tip zapisa i koristiti promenljive tog tipa, tamo gde je to moguće.

Napomene:

1.   Odbrana četvrtog domaćeg zadatka je u utorak, 15.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:

·      dz4.PAS, koja sadrži izvorni tekst osnovnog programa na programskom jeziku Pascal;

·      dz4_u1.txt,…,dz4_uN.txt, od kojih svaka sadrži po jedan test primer.

06.01.2008. godine                                                                                                  sa predmeta