OO1PP1 – DZ4                                                                     Rok za izradu: 19.01.2007.

PRAKTIKUM IZ PROGRAMIRANJA 1

- domaći zadatak broj 4 -

Sastaviti program na programskom jeziku Pascal, koji radi sa tekst datotekama po sledećem redosledu izvršavanja:

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

b) poziva odgovarajući potprogram koji izvrši traženu obradu nad datotekama,

c) poziva potprogram koji ispisuje rezultate izvršavanja obrade (imena datoteka i broj  obrađenih redova svake datoteke), i

d) ponavlja prethodne korake sve dok se za ime datoteke na zada prazan string.

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

  1. prepisuje sadržaj ulazne tekst datoteke u drugu tekst datoteku uz zamenu svih cifara slovnim nazivima tih cifara; ukoliko postoji više cifara u nizu, razdvajati ih crticom prilikom prepisivanja;
  2. prepisuje sadržaj ulazne tekst datoteke u izlaznu datoteku; ulazni tekst može sadržati brojeve za kojima neposredno slede oznake za dužinu u imperijalnom sistemu ("ft" za stope, "yd" za jarde i "ml" za milje) koje treba pretvoriti u metrički sistem; koristiti sledeće odnose: 1 m = 3 ft, 1 yd = 0.914 m, 1 ml = 1650 m;
  3. prepisuje tekst iz ulazne tekst datoteke koji sadrži rimske brojeve u izlaznu tekst datoteku uz konverziju rimskih brojeva u dekadni sistem; rimske cifre koje treba podržati su I,V,X,L,C,D,M (samo velika slova); smatrati da u svakom redu može biti 0 ili više rimskih brojeva razdvojenih proizvoljnim brojem znakova razmaka;
  4. prepisuje sadržaj ulazne tekst datoteke u izlaznu tekst datoteku uz ispravljanje svih grešaka tipa "TWo INitial CAps" (BAnana se ispravlja kao Banana);
  5. prepisuje sadržaj ulazne tekst datoteke u izlaznu tekst datoteku uz ispravljanje svih grešaka tipa "accidental cAPS LOCK usage" (jABUKA se ispravlja kao Jabuka)

Program treba da čita ulaznu datoteku uz vođenje računa o tipu podataka koji se čita. Smatrati da ulazna datoteka ima 0 ili više redova. Pri prepisivanju u teksta u nove datoteke, očuvati prvobitnu uređenost teksta po redovima. Smatrati da dužine redova nisu veće od 80. 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. Test primere prekucati u bilo kom tekst editoru i priložiti zajedno sa tekstom programa. Potprogrami ne smeju pristupati promenljivama glavnog programa direktno, već samo putem svojih argumenata.

Napomene:

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

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

·      dz4_u1.txt, …, dz4_uN.txt, koje sadrže nekoliko odabranih test primera kojima će se program testirati

12.01.2007. godine                                                                                    sa predmeta