OO1PP1 – DZ3                                                                            Rok za izradu: 07.12.2009.

PRAKTIKUM IZ PROGRAMIRANJA 1

- domaći zadatak broj 3 -

Sastaviti na programskom jeziku Pascal glavni program koji radi sa dvodimenzionalnom matricom/matricama na sledeći način:

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

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

·      poziva potprogram koji ispisuje sve dobijene rezultate;

·      ponavlja prethodne korake sve dok za broj vrsta ne bude uneta negativna vrednost.

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

0.   pronalazi pozicije svih elemenata u matrici čiji su svi susedi veći od datog elementa;

1.   pronalazi pozicije svih elemenata matrice čija je vrednost u opsegu koji određuju aritmetičke sredine glavne i sporedne dijagonale te matrice;

2.   pronalazi najveći element svake vrste matrice i određuje njihovu geometrijsku sredinu;

3.   izračunava aritmetičku sredinu svih elemenata matrice čiji je zbir rednih brojeva vrste i kolone paran;

4.   u svakoj vrsti pronalazi element koji ima najveću apsolutnu vrednost odstupanja od najmanjeg elementa cele matrice;

5.   računa skalarni proizvod ulazne matrice i skalara kojeg unosi korisnik, pa u tako dobijenoj matrici pronalazi redni broj vrste i i redni broj kolone čiji je zbir elemenata najveći.

Programi treba da učitaju sve potrebne podatke, zatim izvrše zahtevanu obradu i na kraju ispišu rezultate te obrade. Pri zadavanju matrice, prvo učitati dimenzije, a zatim i same elemente. Kod ispisivanja matrice, ispisivati jednu vrstu po liniji ispisanog teksta. Podrazumevati da su u programima koji rade sa dve ulazne matrice, te matrice istih dimenzija. 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 svi elementi mogu biti smešteni korišćenjem predviđenih dimenzija. Kandidati koji pre odbrane na posebnom listu papira nemaju spremna makar tri suštinski različita test primera neće moći da pristupe odbrani. Svaki primer treba da sadrži ulazne podatke i očekivani izlaz za te podatke. 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: nakon učitavanja podataka, a pre poziva potrograma koji radi samu obradu, poziva se novi potprogram, koji izvrši transponovanje matrice/matrica sa kojima se radi.

Napomene:

1.   Odbrana trećeg domaćeg zadatka je u ponedeljak, 07.12.2009. godine. Tačni termini za sve studente su objavljeni u okviru sistema WebLab.

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 6

3.   Kao rešenje domaćeg zadatka potrebno je na odbrani pokazati sledeće datoteke:

·      dz3.PAS, koja sadrži izvorni tekst traženog programa;

·      dz3_mod.PAS, koja sadrži izvorni tekst modifikovanog programa.

27.11.2009. godine                                                                                           sa predmeta