OO1PP1 – DZ2                                                                     Rok za izradu: 10.12.2007.

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:

  1. pronalazi i ispisuje Fibonačijeve brojeve u zadatom nizu celih brojeva; Fibonačijevi brojevi se računaju po formuli f0=1, f1=1, fn=fn-1 + fn-2;
  2. za svaki element niza celih brojeva ispisuju njegovi prosti činioci (npr. za broj 24 to su 2, 2, 2 i 3);
  3. pronalazi i ispisuje elemente niza koji pripadaju geometrijskoj progresiji sa osnovom b i korakom q; b i q unosi korisnik; progresija je b, bq, bq2, …, bqn;
  4. računa i ispisuje zbir cifara svakog elementa u nizu celih brojeva;
  5. vrši konverziju niza celih brojeva iz brojnog sistema sa osnovom q<10 u dekadni brojni sistem;
  6. od niza celih brojeva a[i] formira niz b[i] koji sadrži one brojeve niza a[i], za koje važi da u nizu a[i] istovremeno postoje dvostruko manji i dvostruko veći broj;
  7. pronalazi i ispisuje elemente niza celih brojeva koji su jednaki faktorijelu svog indeksa u nizu (uslov a[i]=i!);
  8. pronalazi i ispisuje najduži rastuće uređeni podniz u nizu brojeva; ukoliko ima više podniza iste dužine ispisati prvi od njih;

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 elementi niza (proveriti da li je veličina niza dovoljna za smeštanje svih elemenata). Kod ispisivanja niza, ispisati i broj elemenata, i 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 proizvoljan 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 izbaciti sve elemente parne/neparne vrednosti, zavisno od toga da li je redni broj indeksa studenta (unosi se sa glavnog ulaza) paran ili nije. Nakon izbacivanja elemenata ispisati niz i njegovu novu dužinu.

Napomene:

1.   Odbrana drugog domaćeg zadatka će biti održana 10.12.2007. u RC ETF. Tačni termini za sve studente će biti blagovremeno objavljeni u okviru sistema WebLab. Studenti su dužni da do tog vremena aktiviraju sve svoje naloge u RC ETF. Student koji nema aktivan nalog neće moći da pristupi odbrani domaćeg zadatka.

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:

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

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

21.11.2007. godine                                                                                    sa predmeta