OO1PP2 – DZ1                                                                                   Rok za izradu: 10.04.2008.

 

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. 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.     spaja dva neopadajuće/nerastuće uređena niza brojeva u treći niz brojeva, koji je uređen na isti način; informaciju o vrsti uređenja korisnik unosi preko glavnog ulaza;

1.     umeće brojeve jednog neopadajuće/nerastuće uređenog niza u drugi, na isti način uređeni, niz; informaciju o vrsti uređenja korisnik unosi preko glavnog ulaza;

2.     vrši zamenu mesta elemenata zadatog niza brojeva, zamenjujući prvi element sa poslednjim, drugi sa pretposlednjim, i tako redom do polovine niza, ali samo za parove kod kojih je zbir veći od broja koji korisnik zadaje preko glavnog ulaza;

3.     izračuna aritmetičku sredinu elemenata niza, iz njega izbaci sve elemente koji imaju vrednost manju od izračunate i od izbačenih elemenata formira novi niz;

4.     u nizu brojeva pronalazi par 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 izbacuje iz niza; program treba da ponavlja ovu obradu sve dok niz ima više od jednog elementa;

5.     množi dva polinoma A(n) i B(n) predstavljena nizovima a[i] i b[i] od najviše 10 elemenata i računa vrednost dobijenog polinoma za vrednost x koju korisnik zadaje preko glavnog ulaza;

6.     iz zadatog niza znakova izbacuje sve koji nisu slova, uz konverziju malih u velika slova i velikih slova u mala;

7.     računa vrednost |S1-S2|, gde je S1 suma svih parnih (deljivih sa 2) elemenata zadatog niza, S2 suma svih neparnih elemenata, a zatim formira novi niz, koji sadrži sve parne elemente početnog niza koji su veći od sračunate sume i sve neparne koji su manji;

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 pre osnovne obrade izvrši sortiranje početnog niza po neopadajućem/nerastućem kriterijumu (kriterijum sortiranja korisnik zadaje preko glavnog ulaza).

Napomene:

1.      Odbrana prvog domaćeg zadatka je u četvrtak, 10.04.2008. u RC ETF po rasporedu dostupnom preko 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;

 

01.04.2008. godine                                                                                                  sa predmeta