Forum » Programiranje » Naloga v C-ju pomoč
Naloga v C-ju pomoč
siamon ::
Nujno rabim pomoč pri izvedbi te naloge. Rabim jo v C-kodi, če pa ne gre bo tudi C++ uredu.
-------------------------------
Treemap ©
Napišite program, ki implementira podatkovno strukturo TreeMap iz Jave, kjer namesto rdeče-črnih dreves uporabite navadno binarno drevo (binarni slovar). Za binarni slovar (binarno iskalno drevo) velja, da je ključ v korenu večji od ključa v levem poddrevesu in manjši od ključa v desnem poddrevesu za vsako vozlišče v drevesu.
Pri binarnem slovarju je potrebno implementirati konstruktor (ki ustvari prazno strukturo), destruktor (ki sprosti vse vire, ki jih je zasedla struktura, na primer pomnilnik), metode put(k,v), get(k), clear(), containsKey(k), containsValue(v), isEmpty(), remove(k) in size(). Vrednost elementa naj bo poljuben niz znakov, katerega dolžina ne presega 255 znakov, ključ pa je celo število. Število elementov v tej strukturi naj ne bo omejeno. Vse funkcije naj kot parameter prejmejo kazalec na strukturo.
Delovanje napisanih funkcij preverite v programu, ki najprej zgradi strukturo, katere elemente prebere iz datoteke. Elementi strukture so v datoteki zapisani po vrsticah. V vsaki vrstici je najprej eno celo število, ki predstavlja ključ elementa, temu pa sledi presledek in niz znakov (dolžine največ 255 znakov), ki predstavlja vrednost elementa. Niz z vrednostjo je zapisan v narekovajih. Ko slovar zgradite, ga izpišite (način izpisa je poljuben, le na začetku naj se v oklepaju izpiše tudi njegova dolžina). Operacije nad zgrajenim slovarjem so zapisane v drugi datoteki, vsaka v svoji vrstici, in sicer v naslednji obliki (vrednost je vedno zapisana v narekovajih, med oznako operacije, ključem in vrednostjo pa je presledek):
p ključ "vrednost" pomeni dodajanje elementa v slovar,
g ključ pomeni izpis vrednosti elementa s tem ključem,
k ključ vrne 1, če je podan ključ v slovarju, sicer vrne 0,
v "vrednost" vrne 1, če je podana vrednost v slovarju, sicer vrne 0,
r ključ pomeni brisanje elementa iz slovarja.
Pred brisanjem elementa iz slovarja vedno najprej preverite, ali ni slovar slučajno prazen.
Po vsaki operaciji naj program na zaslon izpiše rezultat operacije oziroma trenutno velikost slovarja (v oklepaju) in njegove elemente. Na koncu slovar tudi izpraznite in uničite (klic destruktorja). Imeni obeh datotek sta podani kot argumenta programa.
Primer datoteke z elementi slovarja:
5 "to je prvi niz"
1 "drugi niz"
7 "vrednost v slovarju"
3 "se ena vrednost ..."
Primer datoteke z operacijami nad slovarjem:
p 2 "dodamo ta niz"
p 2 "zamenjamo niz"
g 5
g 3
g 7
k 2
k 3
r 3
v "dodamo ta niz"
Primer izpisa za zgornjo datoteko (način izpisa slovarja je poljuben):
(4) 1 "drugi niz", 3 "se ena vrednost ...", 5 "to je prvi niz", 7 "vrednost v slovarju"
(3) 1 "drugi niz", 5 "to je prvi niz", 7 "vrednost v slovarju"
(4) 1 "drugi niz", 2 "dodamo ta niz", 5 "to je prvi niz", 7 "vrednost v slovarju"
(4) 1 "drugi niz", 2 "zamenjamo niz", 5 "to je prvi niz", 7 "vrednost v slovarju"
"to je prvi niz"
0
"vrednost v slovarju"
1
0
0
------------------
Hvala za pomoč.
-------------------------------
Treemap ©
Napišite program, ki implementira podatkovno strukturo TreeMap iz Jave, kjer namesto rdeče-črnih dreves uporabite navadno binarno drevo (binarni slovar). Za binarni slovar (binarno iskalno drevo) velja, da je ključ v korenu večji od ključa v levem poddrevesu in manjši od ključa v desnem poddrevesu za vsako vozlišče v drevesu.
Pri binarnem slovarju je potrebno implementirati konstruktor (ki ustvari prazno strukturo), destruktor (ki sprosti vse vire, ki jih je zasedla struktura, na primer pomnilnik), metode put(k,v), get(k), clear(), containsKey(k), containsValue(v), isEmpty(), remove(k) in size(). Vrednost elementa naj bo poljuben niz znakov, katerega dolžina ne presega 255 znakov, ključ pa je celo število. Število elementov v tej strukturi naj ne bo omejeno. Vse funkcije naj kot parameter prejmejo kazalec na strukturo.
Delovanje napisanih funkcij preverite v programu, ki najprej zgradi strukturo, katere elemente prebere iz datoteke. Elementi strukture so v datoteki zapisani po vrsticah. V vsaki vrstici je najprej eno celo število, ki predstavlja ključ elementa, temu pa sledi presledek in niz znakov (dolžine največ 255 znakov), ki predstavlja vrednost elementa. Niz z vrednostjo je zapisan v narekovajih. Ko slovar zgradite, ga izpišite (način izpisa je poljuben, le na začetku naj se v oklepaju izpiše tudi njegova dolžina). Operacije nad zgrajenim slovarjem so zapisane v drugi datoteki, vsaka v svoji vrstici, in sicer v naslednji obliki (vrednost je vedno zapisana v narekovajih, med oznako operacije, ključem in vrednostjo pa je presledek):
p ključ "vrednost" pomeni dodajanje elementa v slovar,
g ključ pomeni izpis vrednosti elementa s tem ključem,
k ključ vrne 1, če je podan ključ v slovarju, sicer vrne 0,
v "vrednost" vrne 1, če je podana vrednost v slovarju, sicer vrne 0,
r ključ pomeni brisanje elementa iz slovarja.
Pred brisanjem elementa iz slovarja vedno najprej preverite, ali ni slovar slučajno prazen.
Po vsaki operaciji naj program na zaslon izpiše rezultat operacije oziroma trenutno velikost slovarja (v oklepaju) in njegove elemente. Na koncu slovar tudi izpraznite in uničite (klic destruktorja). Imeni obeh datotek sta podani kot argumenta programa.
Primer datoteke z elementi slovarja:
5 "to je prvi niz"
1 "drugi niz"
7 "vrednost v slovarju"
3 "se ena vrednost ..."
Primer datoteke z operacijami nad slovarjem:
p 2 "dodamo ta niz"
p 2 "zamenjamo niz"
g 5
g 3
g 7
k 2
k 3
r 3
v "dodamo ta niz"
Primer izpisa za zgornjo datoteko (način izpisa slovarja je poljuben):
(4) 1 "drugi niz", 3 "se ena vrednost ...", 5 "to je prvi niz", 7 "vrednost v slovarju"
(3) 1 "drugi niz", 5 "to je prvi niz", 7 "vrednost v slovarju"
(4) 1 "drugi niz", 2 "dodamo ta niz", 5 "to je prvi niz", 7 "vrednost v slovarju"
(4) 1 "drugi niz", 2 "zamenjamo niz", 5 "to je prvi niz", 7 "vrednost v slovarju"
"to je prvi niz"
0
"vrednost v slovarju"
1
0
0
------------------
Hvala za pomoč.
Tutankhamun ::
V google vpiš "C binary tree" pa dobiš tega ko... Pol pa mau predeli da bo zate primern.
AMD Phenom QUAD 9950 Black Edition, 8GB
Stipex ::
lol, js sm isto nalogo dubu :D
edit: nism vidu da je 2008 heh
edit: nism vidu da je 2008 heh
Zgodovina sprememb…
- spremenilo: Stipex ()
Ajrina ::
No, pa še eno vprašanje iz FRI :) Besedilo naloge je:
Z argumenti sem naredila. Z branjem iz tipkovnice pa nikakor ne gre. Kakor koli obrnem - nič. Vsak namig dobrodošel!
Napiši funkcijo int vsotaStevk(char * ID), ki kot parameter prejme študentsko vpisno številko in izračuna in vrne vsoto števk. Primer: klic funkcije vsotaStevk("63090987") naj vrne 42. Funkcija naj tudi preveri pravilnost parametra (ali je res vpisna številka: 8 števk, prvi dve sta 6 in 3). Če parameter ni pravilne oblike, naj funkcija vrne -1. Funkcijo vsotaStevk kliči iz glavnega programa (to je iz funkcije main()), pred tem pa parameter (vpisno številko) preberi iz tipkovnice.
Z argumenti sem naredila. Z branjem iz tipkovnice pa nikakor ne gre. Kakor koli obrnem - nič. Vsak namig dobrodošel!
P1P1 ::
Namig: Počakaj do današnjih predavanj
Q6600 3.2Ghz, Rampage Formula, X-FI Titanium Fatal1ty,
9800GTX+, Velociraptor 300Gb, Teamgroup Extreme dark
9800GTX+, Velociraptor 300Gb, Teamgroup Extreme dark
Tutankhamun ::
int vsotaStevk (char *ID) { int len = strlen (ID); if (len != 8) return -1; if (ID [0] != '6' || ID [1] != '3') return -1; int sum = 6+3; for (int i = 2; i < 8; i++) { if (ID [i] < '0' || ID [i] > '9') return -1; sum += ID [i] - '0'; } return 0; }
AMD Phenom QUAD 9950 Black Edition, 8GB
Ajrina ::
Hvala za pomoč Tutankhamun!
Malo sem preuredila, popravila in je. Pri svojih poskusih sem samo pozabila na sum = 0
Malo sem preuredila, popravila in je. Pri svojih poskusih sem samo pozabila na sum = 0
Tutankhamun ::
aja šele zdej sm opazu da rabš sam branje s tipkovnce :).
Pa prej ko sm odgovoru za funkcijo vsotaStevk (...) funkcija more nakonc vračat return sum; namesto return 0;
int vsota; char studentID [9]; // 8 mestna številka + \0 scanf ("%s", studentID); vsota = vsotaStevk (studentID); if (vsota == -1) printf ("nekaj je narobe z ID stevilko\n"); else printf ("vsota stevk stevilke %s = %u\n", studentID, vsota);
Pa prej ko sm odgovoru za funkcijo vsotaStevk (...) funkcija more nakonc vračat return sum; namesto return 0;
AMD Phenom QUAD 9950 Black Edition, 8GB
keworkian ::
Samo a ni to brezveze, sprasujes na forumu za namige, katere bi moral sam ugotovit, ter sam pridet do njih. Slabi programerji boste to.:>
Obscenities in B-Flat
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | program, ki ti najde vse kombinacije črk oz. številk, ki mu jih podaš (strani: 1 2 )Oddelek: Programiranje | 41732 (6424) | XyNOBvxWVJ |
» | Python - težava s slovarji - vnosOddelek: Programiranje | 1280 (1102) | RatedR |
» | Python - pomoč (strani: 1 2 3 )Oddelek: Programiranje | 17921 (8669) | black ice |
» | Naloga iz Putka - UPMOddelek: Programiranje | 2203 (1539) | NejcSSD |
» | python-pomoč pri nalogi z niziOddelek: Programiranje | 1528 (1226) | galu |