OO1PP1 – DZ3                                                                     Rok za izradu: 26.12.2006.

PRAKTIKUM IZ PROGRAMIRANJA 1

- domaći zadatak broj 3 -

Sastaviti na programskom jeziku Pascal glavni program, koji na sledeći način radi sa dvodimenzionalnom matricom realnih brojeva:

·      poziva potprogram koji učitava sve potrebne podatke (dimenzije i elemente matrice);

·      poziva odgovarajući potprogram koji izvrši zahtevanu obradu nad ulaznim podacima;

·      poziva potprogram koji ispisuje sve dobijene rezultate;

·      ponavlja prethodne korake sve dok se za broj vrsta ne unese negativna vrednost.

Zavisno od rednog broja problema koji se rešava, sastaviti jedan od sledećih programa na programskom jeziku Pascal, kojim se:

0.   određuju vrednosti i pozicija svih elemenata matrice za koje u matrici postoje i dvostruko veći i dvostruko manji broj;

1.   izračunava broj i određuju pozicije elemenata matrice koji su ili najmanji ili najveći i u svojoj vrsti i u svojoj koloni;

2.   pronalaze pozicije onih elemenata matrice koji se razlikuju od svih elemenata i u svojoj vrsti i svojoj koloni;

3.   pronalaze pozicije svih elemenata kojima svi susedi imaju vrednost veću od njihove;

4.   pronalaze vrste i kolone matrice čija je aritmetička sredina jednaka;

Pri zadavanju matrice, prvo se učitavaju dimenzije, a zatim i sami elementi. Kod ispisivanja matrice, ispisivati jednu vrstu po liniji ispisanog teksta. Predvideti maksimalni broj vrsta i kolona (MAX_BR_VR, MAX_BR_KOL) pri deklaraciji matrice, a u toku rada proveravati da li su unete dimenzije matrice takve da se svi elementi mogu smestiti u matrice predviđenih dimenzija. Osmisliti i napisati na papiru makar tri 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 i/ili povratne vrednosti.

Važno: kada se uspešno reši osnovni zadatak, napraviti novi program, koji predstavlja modifikaciju osnovnog programa. Treba dodati sledeću osobinu: osim matrica, program učitava i dva SKUPA brojeva. Prvi skup brojeva odgovara rednim brojevima vrsta, a drugi rednim brojevima kolona (set of 1..MAX_BR_VR, set of 1..MAX_BR_KOL). Obrada se vrši samo za one elemente matrice čiji se indeksi nalaze u zadatim SKUPOVIMA. Oba skupa se zadaju preko glavnog ulaza tako što se prvo unese broj elemenata, a zatim i sami elementi SKUPA.

Napomene:

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

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

·      dz3_sk.PAS, koja sadrži tekst modifikovanog programa

 

20.12.2006. godine                                                                                   sa predmeta