OO1PP1 – DZ2 Rok za izradu: 24.11.2009.
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. u nizu celih brojeva a[i] pronalazi i ispisuje sve uređene trojke (p,q,r), takve da mogu predstavljati dužine stranica jednakokrakog trougla;
1. u nizu celih brojeva a[i] pronalazi i ispisuje sve uređene parove (p,q), čiji je proizvod deljiv brojem koji korisnik unosi sa glavnog ulaza;
2. u zadatom nizu celih brojeva pronalazi i ispisuje najduži rastuće uređeni podniz; ukoliko ima više podnizova iste dužine ispisati prvi od njih;
3. pronalazi i ispisuje sve elemente zadatog niza celih brojeva čiji je faktorijel veći od trećeg stepena broja koji unosi korisnik; uzeti da su svi elementi ulaznog niza u opsegu [0..7];
4. pronalazi i ispisuje sve elemente zadatog niza celih brojeva čiji je zbir cifara manji od kvadratnog korena broja koji unosi korisnik;
5. pronalazi i ispisuje sve elemente zadatog niza celih brojeva koji pripadaju aritmetičkoj progresiji; prvi član progresije je a[1]; razlika između članova progresije je d; ova dva parametra unosi korisnik; formula progresije je a[n]=a[1]+(n-1)*d;
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. Pri tome, 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. nepozitivan ili 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 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.
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 parne/neparne vrednosti, zavisno od toga da li je broj, koji će korisnik dodatno uneti sa glavnog ulaza, parne ili neparne vrednosti. Nakon izbacivanja elemenata ispisati niz i njegovu novu dužinu.
Napomene:
1. Odbrana drugog domaćeg zadatka je u utorak, 24.11.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:
· dz2.PAS, koja sadrži izvorni tekst osnovnog programa na programskom jeziku Pascal;
· dz2_mod.PAS, koja sadrži tekst modifikovanog programa;
13.11.2009. godine sa predmeta