OO1PP1 – DZ2                                                                            Rok za izradu: 28.11.2008.

PRAKTIKUM IZ PROGRAMIRANJA 1

- domaći zadatak broj 2 -

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

0.   izračunava dužinu izlomljene linije u ravni; linija je predstavljena pomoću dva niza realnih brojeva x[i] i y[i], koji sadrže koordinate sukcesivnih tačaka preloma linije; korisnik zadaje izgled linije unošenjem parova (x,y);

1.   u nizu celih brojeva a[i] pronalazi i ispisuje sve uređene trojke (p,q,r), takve da p i q mogu predstavljati dužine kateta, a r dužinu hipotenuze pravouglog trougla;

2.   izračunava i ispisuje srednju vrednost trećeg stepena onih članova niza koji su deljivi brojem p, koji korisnik unosi sa glavnog ulaza;

3.   u nizu brojeva a[i] pronalazi i ispisuje sve uređene trojke (a,b,c) za koje važi c=a*b;

4.   pronalazi trougao najveće površine i ispisuje tu površinu; trouglovi su predstavljeni pomoću dva niza realnih vrednosti a[i] i h[i], od kojih prvi sadrži osnovice, a drugi visine trouglova; korisnik zadaje trouglove unošenjem parova (a,h);

5.   izračunava i ispisuje zbir cifara svakog elementa u nizu brojeva a[i];

Programi treba da učitaju sve potrebne podatke, zatim izvrše zahtevanu obradu i, na kraju, ispišu rezultate te obrade. Pri zadavanju niza, prvo učitati broj elemenata, a zatim i same elemente niza (proveriti da li je veličina niza dovoljna za smeštanje svih elemenata). U programima gde postoje dva ulazna niza, podrazumevati da su ulazni nizovi iste dužine. Kod ispisivanja niza, ne treba ispisivati broj elemenata, već samo elemente niza. Predvideti maksimalni broj elemenata niza (MAX_BR_EL) pri deklaraciji niza. Program treba da ponavlja ceo postupak sve dok korisnik ne unese neku neodgovarajuću vrednost za neki od ulaznih podataka (npr. previše veliki broj za broj elemenata niza). Tip elemenata niza odabrati prema potrebama zadatka, odnosno koristiti proizvoljni tip tamo gde to nije suštinski bitno za sam algoritam. Kandidati koji na odbrani na posebnom listu papira nemaju spremna makar tri različita test primera ne mogu dobiti maksimalan broj poena. Svaki primer treba da sadrži ulazne podatke i očekivani izlaz za te podatke.

Važno: po uspešnom rešavanju osnovnog zadatka, napraviti novi program, koji predstavlja modifikaciju osnovnog programa. Nakon završetka osnovne obrade iz početnog niza/nizova izbaciti sve elemente na parnim/neparnim indeksima, zavisno od toga da li je redni broj indeksa studenta (unosi korisnik sa glavnog ulaza) paran ili nije. Nakon izbacivanja elemenata ispisati niz i njegovu novu dužinu.

Napomene:

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

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

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

17.11.2008. godine                                                                                    sa predmeta