OO1PP2 – DZ1                                                                                   Rok za izradu: 18.04.2007.

 

PRAKTIKUM IZ PROGRAMIRANJA 2

- domaći zadatak broj 1 -

Sastaviti program na programskom jeziku C kojim se vrši određena vrsta obrade nad ulaznim nizom. Program treba da:

a)        učitava sve potrebne podatke (dužinu niza, elemente niza, itd.);

b)        izvršava zahtevanu obradu;

c)         ispisuje sve dobijene rezultate;

d)        ponavlja prethodna tri koraka sve dok se za dužinu niza/nizova ne unese negativna vrednost;

Zavisno od rednog broja problema, sastaviti jedan od sledećih programa, kojim se:

  1. vrši provera da li je neki broj u zadatom nizu Fibonačijev broj i, ako nije, izbacuje iz niza; Fibonačijevi brojevi se računaju po formuli f0=1, f1=1, fn=fn-1 + fn-2;
  2. vrši provera da li element niza pripada geometrijskoj progresiji sa osnovom b i korakom q, koji se unose sa glavnog ulaza, i ako nije, izbacuje iz niza; progresija je b, bq, bq2, …, bqn;
  3. vrši pretvaranje realnog niza temperaturnih odmeraka izraženih u jedinicama Farenhajta u jedinice Celzijusa, a onda iz datog niza izbacuju sve one vrednosti koje odstupaju više od 50% od optimalne temperature koja se unosi sa glavnog ulaza ([°C] = ([°F] − 32) · 5/9);
  4. računa zbir cifara za svaki element u nizu celih brojeva, a zatim iz niza izbacuju svi oni elementi koji nisu deljivi sa 3;
  5. vrši konverzija niza uglova zadatih stepenima u niz uglova zadatih radijanima, a zatim iz niza izbacuju svi tupi uglovi;
  6. vrši konverzija niza brojeva iz brojnog sistema sa osnovom q<10 u dekadni brojni sistem, a zatim izbacuju svi brojevi veći od vrednosti koja se unosi sa glavnog ulaza;
  7. rotira niz celih brojeva za proizvoljan broj mesta ulevo ili udesno u zavisnosti od parametara unetih sa glavnog ulaza, zatim eliminiše iz niza broj koji u svojoj binarnoj predstavi ima najduži podniz binarnih jedinica;
  8. vrši logičko pomeranje niza binarnih cifara za zadati broj mesta ulevo ili udesno, a zatim se izračunava vrednost binarnog broja formiranog od tih cifara;

Pri zadavanju niza preko standardnog ulaza, prvo se učitava broj elemenata, a zatim i sami elementi niza. Kod ispisivanja niza, ne ispisuje se broj elemenata, već se ispisuju samo elementi niza. Program treba da ponavlja ceo postupak sve dok se ne unese negativan broj za broj elemenata niza. Predvideti maksimalni broj elemenata niza (MAX_BR_EL) pri deklaraciji niza, a u toku rada proveravati da li je uneta dimenzija niza takva da se svi elementi koje treba uneti mogu smestiti u niz predviđenih dimenzija. Tip elemenata niza odabrati prema potrebama zadatka, odnosno koristiti proizvoljni tip tamo gde to nije suštinski bitno za sam algoritam. Odabrati nekoliko skupova podataka sa kojima će se program testirati.

Kada se reši osnovni problem, izmeniti rešenje zadatka tako da se pre osnovne obrade izvrši sortiranje početnog niza po neopadajućem/nerastućem kriterijumu (kriterijum sortiranja se zadaje preko glavnog ulaza).

Napomene:

1.      Termin odbrane prvog domaćeg zadatka studenti mogu videti na sistemu 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:

·       dz1.c, koja sadrži izvorni tekst osnovnog programa na programskom jeziku C;

·       dz1_mod.c, koja sadrži izvorni tekst izmenjenog programa na programskom jeziku C;

·       dz1_test.txt, koja sadrži test primere (ulaz i očekivani izlaz);

 

11.04.2007. godine                                                                                                  Sa predmeta