OO1PP2 – DZ1                                                                                   Rok za izradu: 02.04.2009.

 

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:

  1. iz zadatog niza znakova izbacuje sve cifre, uz konverziju malih u velika slova i obratno;
  2. učitava niz koji predstavlja binarnu predstavu celog broja i vrši aritmetičko pomeranje u desno (http://en.wikipedia.org/wiki/Arithmetic_shift) tog niza za dati broj mesta, nakon čega ispisuje decimalnu predstavu tako dobijenog broja;
  3. za četiri učitana binarna niza pravi peti niz koji predstavlja niz bitova parnosti; bit parnosti (http://en.wikipedia.org/wiki/Parity_bit) na određenom mestu u nizu odgovara broju jedinica na tom mestu u učitanim nizovima (ako je broj jedinica neparan onda je bit parnosti postavljen na jedan i obrnuto);
  4. sabira u drugom komplementu dva binarna broja (predstavljena nizovima nula i jedinica), rezultat smešta u treći niz nula i jedinica, pa ispiše decimalnu predstavu dobijenog broja;
  5. ako su sa dva niza X[i] i Y[i] predstavljene koordinate tačaka u koordinatnom sistemu, nalazi dve tačke sa najvećim međusobnim rastojanjem i izbacuje ih iz datih nizova;
  6. 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);

6.     izračuna aritmetičku sredinu niza, a zatim iz niza izbaci sve elemente manje od nje;

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, 02.04.2009. 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 7

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;

 

20.03.2009. godine                                                                                                  sa predmeta