OO1PP2 – DZ1                                                                                   Rok za izradu: 06.04.2010.

PRAKTIKUM IZ PROGRAMIRANJA 2

- domaći zadatak broj 1 -

Sastaviti program na programskom jeziku C koji vrši određenu vrstu obrade nad ulaznim nizom/nizovima. Program treba da:

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

b)  izvrši zahtevanu obradu;

c)   ispiše sve dobijene rezultate;

d)  ponavlja prethodna tri koraka dok za dužinu niza/nizova ne bude uneta negativna vrednost.

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

0.   vrši proveru da li svaki element niza pripada geometrijskoj progresiji sa osnovom b i korakom q koji se unose sa glavnog ulaza i ako ne pripada, izbacuje ga iz niza; progresija je b, bq, bq2, …, bqn;

1.   vrši proveru da li je neki broj u zadatom nizu Fibonačijev broj i, ako nije, izbacuje ga iz niza; Fibonačijevi brojevi se računaju po formuli f0=1, f1=1, fn=fn-1 + fn-2;

2.   vrši konverziju niza uglova zadatih stepenima u niz uglova zadatih radijanima, a zatim iz niza izbacuje sve tupe uglove;

3.   vrši konverziju niza brojeva iz brojnog sistema sa osnovom q<10 u dekadni brojni sistem, a zatim iz niza izbacuje sve brojeve koji su jednocifreni u dekadnom brojnom sistemu; pretpostaviti da ulazni brojevi mogu imati do 10 cifara brojnog sistema sa osnovom q;

4.   rotira niz binarnih cifara za proizvoljan broj mesta ulevo ili udesno u zavisnosti od parametara unetih sa glavnog ulaza, a zatim izbacuje iz niza najduži podniz binarnih jedinica;

5.   vrši logičko pomeranje niza binarnih cifara za zadati broj mesta ulevo ili udesno, a zatim izračunava vrednost binarnog broja formiranog od binarnih cifara u nizu; pretpostaviti da ulazni niz ima najviše 80 binarnih cifara;

6.   u nizu celih brojeva, pronalazi parove brojeva (b, c), gde je b najmanji, a c najveći broj u nizu; brojeve b i c treba ispisati na standardnom izlazu, a zatim ih ukloniti iz niza; obrada se ponavlja sve dok niz ima više od jednog elementa;

7.   u nizu a[i] pronalazi i uklanja prvi najduži podniz takav da se u korespodentnim elementima niza b[i] nalazi vrednost 0;

Pri zadavanju niza preko standardnog ulaza, prvo učitati broj elemenata, a zatim i same elemente niza. Kod ispisa niza, ne treba ispisati broj elemenata, već samo elemente 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 svi elementi koje treba uneti mogu biti smešteni 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 program biti testiran.

Po rešavanju osnovnog problema, izmeniti rešenje zadatka tako da program posle osnovne obrade izvrši sortiranje početnog niza (nizova) po neopadajućem ili nerastućem kriterijumu i ispiše tako sortiran niz (nizove). Kriterijum sortiranja korisnik zadaje preko glavnog ulaza.

Napomene:

1.   Odbrana prvog domaćeg zadatka je u četvrtak, 08.04.2010. po rasporedu dostupnom putem 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:

·      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;

23.03.2010. godine                                                                                                   sa predmeta