–šifra artikla
(int)
–naziv artikla (25 znakova)
–cijena
(float)
Rok za predaju zadaće: 05. 01 2007.
10) Strukturu podataka red realizirati uz upotrebu pokazivača. Svaki
element reda sadrži naziv (20 znakova) i vrijednost (realni broj).
Treba napisati funkciju koja dodaje i funkciju koja briše element
iz reda, u kojima treba ispisati element na kojem se obavlja operacija.
Također napisati funkciju koja ispiše sve elemente u redu.
Rok za predaju zadaće: 10. 01. 2007.
11) Napraviti program koji sortira niz realnih brojeva proizvoljne
duljine (koja se zadaje na početku izvođenja programa) uzlazno (od
najmanjeg prema najvećem) i silazno (od najvećeg prema najmanjem)
upotrebom binarnog stabla traženja i obilaskom tog stabla algoritmom
obilaska koji ispisuje elemente u sortiranom redoslijedu. Usporediti
vrijeme izvršavanja sortiranja za ovaj algoritam i algoritam sortiranja
umetanjem (Insertion Sort) mjerenjem vremena izvršavanja za dugačke
nizove brojeva upotrebom biblioteke
<sys/timeb.h> i
funkcije ftime(struct timeb*) za mjerenje vremena, kako je objašnjeno
na predavanjima.
Rok za predaju zadaće: 22. 01. 2007.
12) Napisati funkciju za punjenje
memorijski rezidentnog binarnog stabla u čije čvorove treba upisati:
matični broj (cijeli broj) i prezime osobe (15+1 znakova). Stablo treba
sortirati po matičnom broju: lijevo manji, desno veći. Napisati
funkciju za ispis elemenata za koju je ulazni argument korijen stabla,
gdje ispis treba biti poredan uzlazno po matičnom broju. Napisati
funkciju koja ispiše matični broj za zadano prezime osobe.
Rok za predaju zadaće: 22. 01. 2007.
13) Napisati program koji od ulaznog polja slučajno generiranih cijelih
brojeva izgradi minimalnu hrpu (u korijenu je minimalni element), te
ispiše polje u kojem su spremljeni elementi hrpe. Zatim napisati
funkciju za silazno sortiranje (od najvećeg prema najmanjem elementu)
polja cijelih brojeva upotrebom sortiranja pomoću hrpe. Sortira
se polje generiranih slučajnih
cijelih brojeva, proizvoljnog broja elemenata N koji se zadaje na
početku programa (koristiti dinamičko rezerviranje memorije za
spremanje polja - funkcija malloc). Usporediti vrijeme izvršavanja
sortiranja pomoću hrpe i sortiranja umetanjem (Insertion Sort)
mjerenjem vremena potrebnog za sortiranje identičnog niza ulaznih
podataka i odrediti koji je brži za
vrlo dugačke nizove brojeva (koristiti biblioteku <sys/timeb.h> i
funkciju ftime(struct timeb*) za mjerenje vremena izvršavanja
sortiranja, kako je objašnjeno na predavanjima).
Rok za predaju zadaće: 02. 02. 2007.
14) Napisati program koji od ulaznog polja alfabetskih znakova (samo
slova engleske abecede, dakle ASCII znakovi koji odgovaraju slovima;
sami izaberite na koji način se unose podaci: s tastature, iz ulazne
datoteke, generator slučajnih brojeva ...) proizvoljne duljine, koja se
unosi na početku izvršavanja programa (koristiti funkciju malloc() za
rezerviranje memorije za polje), izgradi hrpu, te ispiše polje u kojem
su spremljeni elementi hrpe. Također napraviti funkciju koja sortira
polje takvih znakova upotrebom sortiranja pomoću hrpe i ispisati
sortirano polje.
Rok
za predaju zadaće: 02. 02. 2007.
15) Napisati funkciju za silazno sortiranje (od najvećeg prema
najmanjem elementu) ulaznog polja slučajno generiranih cijelih brojeva
duljine N algoritmom sortiranja spajanjem (Merge Sort). Duljina polja
se zadaje na početku izvršavanja programa i upotrebom funkcije malloc()
rezervira se memorija za polje. Usporediti vrijeme izvršavanja
algoritama sortiranja spajanjem i sortiranja umetanjem (Insertion Sort)
na primjeru dugačkog niza brojeva (ulazni niz slučajno generiranih
brojeva kopirati u drugo polje koje će biti ulazni niz za sortiranje
umetanjem). Usporediti sortirana polja i utvrditi da li su oba
algoritma dala identičan (točan) rezultat.
Rok za predaju zadaće: 07. 02. 2007.
16) Napisati
funkciju za silazno sortiranje (od najvećeg prema najmanjem elementu)
ulaznog polja slučajno generiranih cijelih brojeva duljine N algoritmom
Shell-ovog sortiranja. Duljina polja se zadaje na početku
izvršavanja programa i upotrebom funkcije malloc() rezervira se
memorija za polje. Usporediti vrijeme izvršavanja algoritama Shell-ovog
sortiranja i sortiranja umetanjem (Insertion Sort) na primjeru dugačkog
niza brojeva (ulazni niz slučajno generiranih brojeva kopirati u drugo
polje koje će biti ulazni niz za sortiranje umetanjem). Usporediti
sortirana polja i utvrditi da li su oba algoritma dala identičan
(točan) rezultat.
Rok za predaju zadaće: 07. 02. 2007.
17) Napisati
funkciju za silazno sortiranje (od najvećeg prema najmanjem elementu)
ulaznog polja slučajno generiranih cijelih brojeva duljine N algoritmom
brzog sortiranja (Quick Sort). Duljina polja se zadaje na početku
izvršavanja programa i upotrebom funkcije malloc() rezervira se
memorija za polje. Usporediti vrijeme izvršavanja algoritama brzog
sortiranja i sortiranja umetanjem (Insertion Sort) na primjeru dugačkog
niza brojeva (ulazni niz slučajno generiranih brojeva kopirati u drugo
polje koje će biti ulazni niz za sortiranje umetanjem). Usporediti
sortirana polja i utvrditi da li su oba algoritma dala identičan
(točan) rezultat.
Rok za predaju zadaće: 07. 02. 2007.
18) Napisati program u kojem se apstraktni tip podataka skup izvodi
pomoću vezane liste (vidjeti predavanja). Elementi skupova su cijeli
brojevi (sami izaberite način na koji se određuju ulazni elementi za
skupove). Liste ostvariti pomoću pokazivača. Napisati funkcije za uniju
dva skupa Union(), presjek dva skupa Intersection() i razliku dva skupa
Difference(). Napisati funkciju za ispis elemenata skupa kojom se
ispisuju ulazni skupovi i rezultati gornje tri funkcije.
Rok za predaju zadaće: 07. 02. 2007.
19) Napisati program koji rješava 0/1 problem ranca (vidjeti
predavanja). Zadano je n predmeta (nije unaprijed zadan broj nego se
određuje na početku izvođenja programa) O1, ..., On
te njihove težine wi i vrijednosti pi. Kapacitet
ranca je c težinskih jedinica. Težine i vrijednosti predmeta, te
kapacitet ranca su realne pozitivne veličine. Odrediti koje predmete
treba uzeti u ranac tako da njihova ukupna vrijednost bude maksimalna ?
Predmeti se ne mogu dijeliti, nego se uzimaju ili ne.
Rok za predaju zadaće 07. 02. 2007.