OO1PP2 – DZ3 Rok za izradu: 29.05.2008.
PRAKTIKUM IZ PROGRAMIRANJA 2
- domaći zadatak broj 3 -
Sastaviti program na programskom jeziku C kojim se vrši određena vrsta obrade nad znakovnim nizom (u daljem tekstu, string). Program treba da repetitivno učitava sve potrebne ulazne podatke, ispisuje ih po učitavanju, izvršava zahtevanu obradu, ispisuje sve dobijene rezultate, i ponavlja navedene korake sve dok korisnik za ulazni string ne unese „dosta Brus Li″.
Zavisno od rednog broja problema, sastaviti jedan od sledećih programa, koji:
Dimenzije stringa nisu poznate unapred. Memorija predviđena za string mora biti dinamički alocirana. Količina memorije koja je odvojena za string mora biti takva da iskorišćenje bude potpuno (ni bajt više, ni bajt manje). Realokaciju vršiti uvek kada je potrebno, i prilikom unosa stringa i prilikom obrade. U toku rada, prilikom svake alokacije ili realokacije dinamičke memorije, proveravati uspešnost poziva alloc funkcije. U slučaju neuspešne dodele dinamičke memorije, u glavnom programu ispisati poruku o grešci i prekinuti izvršavanje. Nakon svakog ciklusa programa (unos, ispis unetih podataka, obrada, ispis dobijenih rezultata) dealocirati svu dinamičku memoriju. Smatrati da korisnik string zadaje u jednom redu teksta putem standardnog ulaza (u string ulaze svi znakovi do '\n', ne uključujući i '\n'). Obradu treba vršiti nad kopijom stringa, a pri ispisu rezultata na izlaz ispisati i neizmenjeni original i izmenjenu kopiju. Pre odbrane, priložiti na listu papira makar tri suštinski različita test primera i očekivane rezultate.
Važno: po uspešnom rešavanju osnovnog zadatka, modifikovati osnovni program tako da, nakon osnovne obrade, od početnog stringa formira dinamički niz stringova koji će sadržati reči iz početnog stringa, a zatim sortirati formirani niz reči u leksikografskom poretku. Smatrati da su reči razdvojene belim znakovima.
Napomene:
1. Odbrana trećeg domaćeg zadatka je u RC ETF, u četvrtak, 29.5.2008. godine, prema rasporedu koji je dostupan 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 6
3. Kao rešenje domaćeg zadatka potrebno je na odbrani pokazati sledeće datoteke:
· dz3.c, koja sadrži izvorni tekst osnovnog programa na programskom jeziku C;
· dz3_ubl.c, koja sadrži izvorni tekst modifikovanog programa na programskom jeziku C;
14.05.2008. godine sa predmeta