OO1PP1 – DZ3 Rok za izradu: 24.12.2007.
PRAKTIKUM IZ PROGRAMIRANJA 1
- domaći zadatak broj 3 -
Sastaviti glavni program koji radi sa dvodimenzionalnom matricom/matricama na sledeći način:
a) poziva potprogram koji učitava podatke (dimenzije i elemente matrice/matrica);
b) poziva potprogram koji izvrši zahtevanu obradu nad ulaznim podacima;
c) poziva potprogram koji ispisuje sve dobijene rezultate;
d) ponavlja prethodne korake sve dok za broj vrsta ne bude uneta negativna vrednost.
Zavisno od rednog broja problema koji se rešava, sastaviti jedan od sledećih programa na programskom jeziku Pascal, koji:
0. pronalazi i ispisuje pozicije onih elemenata matrice koji su deljivi zbirom indeksa svoje vrste i svoje kolone;
1. izračunava broj i ispisuje pozicije elemenata matrice koji su istovremeno najveći u svojoj vrsti i najmanji u svojoj koloni;
2. određuje aritmetičku sredinu elemenata matrice kod kojih je zbir indeksa vrste i kolone neparan broj;
3. određuje pozicije i ispisuje elemente koji najviše odstupaju od aritmetičke sredine elemenata u svojoj vrsti;
4. određuje najveću i najmanju razliku kvadrata korespondentnih elemenata u dve matrice i ispisuje pozicije i vrednosti elemenata koji učestvuju u tim razlikama;
5. sve pozitivne elemente matrice podigne na stepen jednak razlici rednih brojeva vrste i kolone;
6. utvrđuje da li je matrica trougaona (da li svi elementi iznad ili ispod glavne dijagonale imaju vrednost 0);
7. proverava da li je data matrica simetrična u odnosu na glavnu/sporednu dijagonalu, u zavisnosti da li je veći zbir elemenata na glavnoj ili na sporednoj dijagonali;
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. Osmisliti i napisati na papiru nekoliko primera ulaznih podataka sa kojima će program biti testiran, kao i očekivani izlaz za te primere. Potprogrami ne smeju pristupati promenljivama glavnog programa direktno, već samo putem svojih argumenata.
Važno: po uspešnom rešavanju osnovnog zadatka, 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 trećeg domaćeg zadatka je u ponedeljak 24.12.2007. godine. Tačni termini 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 8
3. Kao rešenje domaćeg zadatka potrebno je na odbrani pokazati sledeće datoteke:
· dz3.PAS, koja sadrži izvorni tekst osnovnog programa na programskom jeziku Pascal;
· dz3_sk.PAS, koja sadrži tekst modifikovanog programa
17.12.2007. godine sa predmeta