3. zadaća?
Select messages from
# through # FAQ
[/[Print]\]

Forum@DeGiorgi -> Računarski praktikum 1

#1: 3. zadaća? Autor/ica: tidus PostPostano: 12:21 sri, 28. 4. 2010
    —
Gdje je? Rečeno nam je da će biti ovaj vikend, a još je nema.

#2:  Autor/ica: Tygy PostPostano: 14:14 čet, 29. 4. 2010
    —
a kud ti se zuri...? još se od kolokvija nisam odmorila, sad opet nesto Laughing

#3:  Autor/ica: tidus PostPostano: 12:00 sub, 1. 5. 2010
    —
ne žuri mi se... samo pitam, da ne saznam zadnji dan.

#4:  Autor/ica: vinkoLokacija: PMF-MO 214 PostPostano: 19:23 uto, 4. 5. 2010
    —
Nažalost, zadaću ćete dobiti tek sutra ili preksutra naveče, jer imam nekih privatnih problema (sa automobilom). Sutra također neće biti vježbi u grupama u kojima ja držim, jer nemogu doći.

Vinko Petričević

#5:  Autor/ica: GinoLokacija: Pula PostPostano: 17:59 pet, 7. 5. 2010
    —
no, te zadace Question

#6:  Autor/ica: bozidarsevoLokacija: Samobor PostPostano: 19:28 sub, 8. 5. 2010
    —
jel bude kaj od te zadaće?

#7:  Autor/ica: bozidarsevoLokacija: Samobor PostPostano: 8:59 pon, 10. 5. 2010
    —
stigla!

#8:  Autor/ica: Vip PostPostano: 22:13 pon, 10. 5. 2010
    —
Kaj opet ne možemo dobiti neki main.. ? Sad

#9:  Autor/ica: Gost PostPostano: 22:25 pon, 10. 5. 2010
    —
pridružujem se željama Laughing Laughing

#10:  Autor/ica: Gost PostPostano: 19:45 uto, 11. 5. 2010
    —
Pa asistenti kasne sa objavom zadace,a i za ispravak im treba 15 dana, a vi mislite da ce pisat main da nama bude lakse?? hahaha

#11:  Autor/ica: Gost PostPostano: 17:42 sri, 12. 5. 2010
    —
Ovako kompajler mi vec drugi dan javlja gresku da mi nedostaje "," ili "..." u knjiznica.h, a stvarno je jako mala greška okom ne vidljiva na malome fontu kakvu ja imam,pa sam htio upozoriti da
funkcija static knjiznica * nadji_knjiznicu(string ime_ knjiznice); nakon znaka "_" ima razmak. Pretpostavljam da to nije tako trebalo biti, s obzirom da razmaka nigdje drugdje nema u drugim funkcijama, a funkcija je
copy->paste-ana iz orginalnog teksta. Pa eto čisto da znate Smile te ne gubite vrijeme na to, ako ima takvih čoravih kao ja.

#12:  Autor/ica: Gost PostPostano: 13:32 pet, 14. 5. 2010
    —
ovako,u zadaći imam napraviti klase knjiga i knjižnica, i u klasi knjiga imam funkciju: bool citaj(unsigned int broj_stranice), pa me zanima što ova funkcija točno radi i di mi je definiran broj stranica, tj. gdje da ga definiram Question
pa ako netko ima sličan problem, ili slučajno zna rješenje...zahvaljujem unaprijed Very Happy

#13:  Autor/ica: GinoLokacija: Pula PostPostano: 15:14 pet, 14. 5. 2010
    —
za grupu film-videoteka

sto bi trebao ispisati sljedeci dio koda (r3 je film)

Kod:
    cout << r3.gledaj()         << endl;
    cout << r3.gledaj()         << endl;
    cout << r3.premotaj()       << endl;
    cout << r3.premotaj()       << endl;


dakle jasno je da ako nije gledan do tad, prvi put se ispise 1, drugi put 0, i kod prvog premotavanja vratim 1, no sad neznam jel i ovo drugo premotavanje vraca 1, jer je film pogledan (prije) ili 0 jer nije pogledan nakon premotavanja

a sto sljedeci (r je videoteka), upitna je zadnja linija

Kod:
    cout << r.vrati(r3)    << endl;
    cout << r3.premotaj()  << endl;


dal to vraca 1 jer je film nekad pogledan, ili vraca 0, jer ga je osoba premotala pa sad nema potrebe, i dali u slucaju da ga osoba nije premotala to vrati 1, ili, ono sto se nadam, nece se pozivat funkcija ako film nije posuden, ili ce u tom slucaju (film nije posuden) morat vratit 0 obja funkcije, gledaj i premotaj

#14:  Autor/ica: vinkoLokacija: PMF-MO 214 PostPostano: 19:43 pet, 14. 5. 2010
    —
Anonymous (napisa):
ovako,u zadaći imam napraviti klase knjiga i knjižnica, i u klasi knjiga imam funkciju: bool citaj(unsigned int broj_stranice), pa me zanima što ova funkcija točno radi i di mi je definiran broj stranica, tj. gdje da ga definiram Question
pa ako netko ima sličan problem, ili slučajno zna rješenje...zahvaljujem unaprijed Very Happy


nigdje nije definiran. jedino treba vratiti true ako stranica nije poderana, a false ako je. i ništa više pametnog ta naredba ne radi

Added after 2 minutes:

Gino (napisa):
za grupu film-videoteka

sto bi trebao ispisati sljedeci dio koda (r3 je film)

Kod:
    cout << r3.gledaj()         << endl;
    cout << r3.gledaj()         << endl;
    cout << r3.premotaj()       << endl;
    cout << r3.premotaj()       << endl;


dakle jasno je da ako nije gledan do tad, prvi put se ispise 1, drugi put 0, i kod prvog premotavanja vratim 1, no sad neznam jel i ovo drugo premotavanje vraca 1, jer je film pogledan (prije) ili 0 jer nije pogledan nakon premotavanja

a sto sljedeci (r je videoteka), upitna je zadnja linija

Kod:
    cout << r.vrati(r3)    << endl;
    cout << r3.premotaj()  << endl;


dal to vraca 1 jer je film nekad pogledan, ili vraca 0, jer ga je osoba premotala pa sad nema potrebe, i dali u slucaju da ga osoba nije premotala to vrati 1, ili, ono sto se nadam, nece se pozivat funkcija ako film nije posuden, ili ce u tom slucaju (film nije posuden) morat vratit 0 obja funkcije, gledaj i premotaj


film se može gledati i premotavati samo dok je posuđen. nakon iznajmljivanja, premotan je na početak, te ga možemo gledati, ali nemožemo premotati.
ako pogledamo film, sada ga možemo premotati, ali nemožemo gledati
nakon što je premotan, možemo ga ponovo gleadati, ali nemožemo premotati
i tako dalje sve dok ga ne vratimo.

#15:  Autor/ica: TindarielLokacija: Zagreb PostPostano: 22:11 pet, 14. 5. 2010
    —
Zna li tko što točno radi funkcija
Kod:
 bool iznajmi(string ime_osobe);

u grupi s automobilima?

#16:  Autor/ica: vinkoLokacija: PMF-MO 214 PostPostano: 22:23 pet, 14. 5. 2010
    —
Tindariel (napisa):
Zna li tko što točno radi funkcija
Kod:
 bool iznajmi(string ime_osobe);

u grupi s automobilima?

ako osoba može iznajmiti automobil (nije već iznajmila, automobil nije iznajmljen...), iznajmljuje ga i vraća true, a u protivnom vraća false.
ista logika je i u drugim grupama

#17:  Autor/ica: Gost PostPostano: 23:23 pet, 14. 5. 2010
    —
meni isto nije jasno to sa stranicama u zadatku sa knjigama i knjižnicom, ok za ovu f-ju čitaj, ali meni nije jasna baš f-ja bool poderi(unsigned int broj_stranice) ? u zadatku se samo navodi da se neka stranica smije poderat samo jednom, što znači da bi trebali definirat broj stranica?...valjda Rolling Eyes nije mi baš najjasnije Embarassed

#18:  Autor/ica: Gost PostPostano: 0:46 sub, 15. 5. 2010
    —
dakle kod fje posudi mi samo trebamo vratiti da li je posudjivanje moguce ili treba posuditi knjigu (oznaciti si to nekako u strukturi) i ako je posudjivanje uspjelo vratiti true?

sve bi bilo puno jasniije da imamo main. Smile

#19:  Autor/ica: Gost PostPostano: 0:49 sub, 15. 5. 2010
    —
vec je odgovoreno ovo za posudi..

#20:  Autor/ica: mycky1111 PostPostano: 8:19 sub, 15. 5. 2010
    —
cijeli zadatak je pomalo nejasno zadan, i mislim da ce se vecina slozit(barem oni s kojima sam pricala)
stoga, mislim da ne bi bilo lose da se da jedan primjer main-a, tako da vidimo jesmo dobro shvatili, jer ako ja pisem svoj program i main na taj program, meni ce on vracat tocno, al mozda sam krivo shvatila neku funkciju, pa samim tim pogresno ocekujem da mi main ispisuje!
main bi stvarno dobro dosao, cisto da znamo provjerit jesmo shvatili svaku funkciju kako treba!

primjera radi, sto vraca funcija nadi_videoteku ako ta videoteka ne postoji? ja sam shvatila NULL, al jesam dobro shvatila?!

#21:  Autor/ica: Gost PostPostano: 11:41 sub, 15. 5. 2010
    —
u potpunosti se slažem sa ovime gore napisanim, imam isto videoteku i zadaća mi je u potpunosti nerazumljiva, u smislu da ne znam što točno pojedine funkcije trebaju vraćati... main bi puno pomogao, ili barem neko dodatno pojašnjenje... ovako će se pisanje zadaće svesti na to jesmo li pogodili što pojedina funkcija treba raditi, a mislim da to nije smisao zadaća...

#22:  Autor/ica: GinoLokacija: Pula PostPostano: 12:16 sub, 15. 5. 2010
    —
evo moji main, trebate samo malo nastimat funkcije ispisi koje su ovisne o implementaciji (inace ih je napisao melkior, da ne bude da se kitim tudim perjem Very Happy )... treba podesit imena varijabli koja sam naveo velikim slovima i neke if-ove...
Kod:

#include "videoteka.h"

void ispisi (vector <film*> v) {
     int i;
     for (i=0; i<v.size(); i++) cout<<v[i]->IME<<endl;
     cout<<endl;
}

void ispisi (vector <videoteka*> v) {
     int i;
     for (i=0; i<v.size(); i++) cout<<v[i]->IME<<endl;
     cout<<endl;
}
void ispisi (set <string> v) {
     set<string>::iterator i;
     for (i=v.begin(); i!=v.end(); i++) cout<<(*i)<<endl;
     cout<<endl;
}
void ispisi (list <film*> v) {
     list<film*>::iterator i;
     for (i=v.begin(); i!=v.end(); i++) cout<<(*i)->IME<<endl;
     cout<<endl;
}
void ispisi (list <videoteka*> v) {
     list<videoteka*>::iterator i;
     for (i=v.begin(); i!=v.end(); i++) cout<<(*i)->IME<<endl;
     cout<<endl;
}

void ispisi (videoteka &v) {
     cout<<v.naziv<<endl;
     cout<<"Cijena premotavanja: "<<v.NESTO<<", cijena preseljenja: "<<v.NESTO<<endl;
     cout<<"Trenutno dostupni filmovi:"<<endl;
     ispisi(v.trenutno_dostupni_filmovi());
}

void ispisi (film &f) {
     cout<<f.naziv<<endl;
     cout<<"Vlasnistvo videoteke: "<<f.naziv_videoteke()<<endl;
     cout<<"Posudjen: "; if (NESTO) cout<<"ne, "; else cout<<"da, ";
     cout<<"pogledan: "; if (NESTO) cout<<"ne, "; else cout<<"da, ";
     cout<<"premotan: "; if (NESTO) cout<<"ne"<<endl; else cout<<"da"<<endl;
     if (NESTO) cout<<"Trenutno u posudbi kod: "<< " NEKOG " <<endl;
     cout<<"Dosadasnji posudjivaci:"<<endl;
     ispisi(f.osobe_koje_su_posudile_film());
}
   
int main(){
   
    videoteka pula("Pula",10,50),zagreb("Zagreb",5,20),rijeka("Rijeka",15,35);
   
    film p1(pula,"p1",60),  p2(pula,"p2",65),
         p3(pula,"p3",55), p4(pula,"p4",100);
   
    film r1(rijeka,"r1",5),  r2(rijeka,"r2",15),
         r3(rijeka,"r3",75);
   
    film z1(zagreb,"z1",10),  z2(zagreb,"z2",10),
         z3(zagreb,"z3",25),  z4(zagreb,"z4",35),
         z5(zagreb,"z5",40);
   
    ispisi(film::svi_filmovi);
    ispisi(videoteka::sve_videoteke);
    ispisi(pula);
    ispisi(r3);
         
    cout << pula.posudi(r1,"Gavran")    << endl;
    cout << pula.posudi(p2,"Melkior")   << endl;
    cout << rijeka.posudi(r3,"Sus")     << endl;
    cout << zagreb.posudi(z5,"Mario")   << endl;
    cout << endl;
   
/*      STANJE
GAVRAN      ()
MELKIOR     (P2)        P2
SUS         (R3)        R3
MARIO       (Z5)        Z5
*/
   
    cout << pula.osoba_vraca_film("Gavran")      << endl;
    cout << rijeka.osoba_vraca_film("Melkior")   << endl;
    cout << pula.posudi(p2,"Melkior")            << endl;
    cout << zagreb.posudi(z5,"Gavran")           << endl;
    cout << zagreb.posudi(z4,"Gavran")           << endl;
    cout << endl;

/*      STANJE
GAVRAN      (Z4)        Z4
MELKIOR     (P2)       
SUS         (R3)        R3
MARIO       (Z5)        Z5
*/

    ispisi(zagreb);
   
    cout << z5.gledaj()         << endl;
    cout << rijeka.vrati(z5)    << endl;
    cout << r3.gledaj()         << endl;
    cout << r3.gledaj()         << endl;
    cout << r3.premotaj()       << endl;
    cout << r3.premotaj()       << endl;
    cout << rijeka.vrati(r3)    << endl;
    cout << z4.gledaj()         << endl;
    cout << z4.vrati(pula)      << endl;   
    cout << endl;
   
/*      STANJE
GAVRAN      (Z4)       
MELKIOR     (P2)       
SUS         (R3)       
MARIO       (Z5)       
*/
     
    cout << p1.posudi("Gavran")    << endl;
    cout << z1.posudi("Melkior")   << endl;
    cout << r1.posudi("Sus")     << endl;
    cout << r2.posudi("Mario")   << endl;
    cout << endl;
   
/*      STANJE
GAVRAN      (Z4,P1)     P1       
MELKIOR     (P2,Z1)     Z1   
SUS         (R3,R1)     R1   
MARIO       (Z5,R2)     R2   
*/   

    ispisi(rijeka);
   
    cout << z1.naziv_videoteke()        << endl;
    cout << z1.vrati(pula)              << endl;
    cout << zagreb.posudi(z4,"Melkior") << endl;
    ispisi(z4.osobe_koje_su_posudile_film());
   
/*      STANJE
GAVRAN      (Z4,P1)     P1       
MELKIOR     (P2,Z1,Z4)  Z4   
SUS         (R3,R1)     R1   
MARIO       (Z5,R2)     R2   
*/ 
   
    ispisi(film::trenutno_dostupni_filmovi());
    ispisi(*film::najposudjivaniji_film());
    ispisi(rijeka.filmovi_pogledani("Mario"));
    ispisi(videoteka::filmovi_pogledani_svuda("Sus"));

// to be continued...

    {
    film p5(pula,"p5",50);   
    cout << pula.vrati(r1)   << " " ;
    cout << r2.gledaj()      << " " ;
    cout << r2.premotaj()    << " " ;
    cout << r2.vrati(pula)   << endl;
    cout << p5.posudi("Sus") << " " ;
    cout << r2.posudi("Sus") << endl;
    }
    cout << r2.posudi("Sus") << endl;
    cout << endl;

/*      STANJE
GAVRAN      (Z4,P1)             P1       
MELKIOR     (P2,Z1,Z4)          Z4   
SUS         (R3,R1,[P5],R2)     R2   
MARIO       (Z5,R2)       
*/
    cout << pula.vrati(p1)   << " " ;
    cout << r2.premotaj()    << " " ;
    cout << r2.gledaj()      << " " ;
    cout << r2.vrati(zagreb) << endl;
    cout << endl;
   
    cout << zagreb.osoba_vraca_film("Nitko")    << " " ;
    cout << rijeka.osoba_vraca_film("Melkior")  << " " ;
    cout << zagreb.posudi(z5,"Mario")           << " " ;
    cout << zagreb.posudi(z4,"Mario")           << " " ;
    cout << pula.posudi(p3,"Mario")             << " " ;
    cout << pula.posudi(p3,"Gavran")            << endl;
    cout << endl;

/*      STANJE
GAVRAN      (Z4,P1,P3)          P3       
MELKIOR     (P2,Z1,Z4)           
SUS         (R3,R1,[P5],R2)       
MARIO       (Z5,R2,Z4)          Z4
*/
   
    cout << film::nadji_film("z2")->posudi("Sus")                           << " " ;
    cout << videoteka::nadji_videoteku("Zagreb")->posudi(z3,"Melkior")      << "-" ;

    cout << p3.premotaj()    << " " ;
    cout << p3.gledaj()      << " " ;
    cout << p3.premotaj()    << " " ;
    cout << z3.gledaj()      << " " ;
    cout << z2.premotaj()    << "-" ;
    cout << z3.gledaj()      << " " ;
    cout << z2.premotaj()    << " " ;
    cout << z2.gledaj()      << " " ;
    cout << z2.premotaj()    << " " ;
    cout << z4.gledaj()      << endl;
    cout << endl;
   
    cout << z4.vrati(pula)                      << " " ;
    cout << pula.vrati(p2)                      << " " ;
    cout << pula.vrati(p3)                      << " " ;
    cout << rijeka.osoba_vraca_film("Sus")      << " " ;
    cout << zagreb.osoba_vraca_film("Melkior")  << endl;
    cout << endl;
   
/*      STANJE
GAVRAN      (Z4,P1,P3)                 
MELKIOR     (P2,Z1,Z4,Z3)           
SUS         (R3,R1,R2,Z2)       
MARIO       (Z5,R2,Z4)         
*/   

    ispisi(videoteka::nadji_videoteku(z4.naziv_videoteke())->filmovi_pogledani("Gavran"));
    ispisi(pula.filmovi_pogledani("Sus"));
    ispisi(videoteka::filmovi_pogledani_svuda("Mario"));
    ispisi(film::trenutno_dostupni_filmovi());
    ispisi(*film::najposudjivaniji_film());   
    cout << film::nadji_film("r2")->posudi("Gavran") << endl << endl;
    ispisi(*film::najposudjivaniji_film());
   
    return 0;
    }


trebalo bi se ispisat sljedece:
Citat:
p1
p2
p3
p4
r1
r2
r3
z1
z2
z3
z4
z5

Pula
Zagreb
Rijeka

Pula
Cijena premotavanja: 10, cijena preseljenja: 50
Trenutno dostupni filmovi:
p1
p2
p3
p4

r3
Vlasnistvo videoteke: Rijeka
Posudjen: ne, pogledan: ne, premotan: da
Dosadasnji posudjivaci:

0
1
1
1

0
100
0
0
1

Zagreb
Cijena premotavanja: 5, cijena preseljenja: 20
Trenutno dostupni filmovi:
z1
z2
z3

1
80
1
0
1
0
75
1
90

1
1
1
1

Rijeka
Cijena premotavanja: 15, cijena preseljenja: 35
Trenutno dostupni filmovi:
r3

Zagreb
60
1
Gavran
Melkior

p2
p3
p4
r3
z1
z2
z3
z5

z4
Vlasnistvo videoteke: Zagreb
Posudjen: da, pogledan: ne, premotan: da
Trenutno u posudbi kod: NEKOG
Dosadasnji posudjivaci:
Gavran
Melkior

r2

r1
r3

55 1 1 65
1 0
1

60 0 1 50

0 70 0 1 0 1

1 1-0 1 1 1 0-0 0 1 1 1

90 0 55 45 30

z4


r2
z4
z5

p1
p2
p3
p4
r1
r2
r3
z1
z2
z3
z4
z5

z4
Vlasnistvo videoteke: Zagreb
Posudjen: ne, pogledan: da, premotan: ne
Dosadasnji posudjivaci:
Gavran
Mario
Melkior

1

r2
Vlasnistvo videoteke: Rijeka
Posudjen: da, pogledan: ne, premotan: da
Trenutno u posudbi kod: NEKOG
Dosadasnji posudjivaci:
Gavran
Mario
Sus


#23:  Autor/ica: Gost PostPostano: 12:30 sub, 15. 5. 2010
    —
hvala puno =) =) =)

#24:  Autor/ica: Gost PostPostano: 12:46 sub, 15. 5. 2010
    —
svaka čast! Cool a jel ima netko main za knjižnicu Question Crying or Very sad Crying or Very sad

#25:  Autor/ica: Gost PostPostano: 15:14 sub, 15. 5. 2010
    —
u tekstu zadatka pise:mozete pretpostaviti da nece biti.. znaci da to ne treba provjeravati?

#26:  Autor/ica: felixxLokacija: *obrisano* PostPostano: 16:32 sub, 15. 5. 2010
    —
kaj radi fja vrati u klasi autokuca?

racunam da je autombil vracen u tu autokucu i onda ovisno o tome jel mu to maticna kuca dodamo cijenu preseljenja te kuce u koju je vracen ?

#27:  Autor/ica: bozidarsevoLokacija: Samobor PostPostano: 17:06 sub, 15. 5. 2010
    —
jel ima neko main za autokuću ? Smile

#28:  Autor/ica: Gost PostPostano: 21:45 sub, 15. 5. 2010
    —
imam pitanje vezano uz videoteku, u tekstu zadatka piše : film se premotava na početak (ako nije bio premotan) u videoteci koja mu je vlasnik (vezano uz vraćanje filma), sad mi nije jasno, jel to znači da čim je film vraćen u videoteku da će se on i premotat? Pa idući koji ga posudi ga može prvo gledati,pa premotati itd..
nije mi jasno kako onda u mainu koji je gino stavio pred kraj ima ovaj ispis: za z4 piše Posudjen: ne, pogledan: da, premotan: ne . Ako nije posuđen znači da je u videoteci, jel ne bi onda trebao biti i premotan?

#29:  Autor/ica: GinoLokacija: Pula PostPostano: 22:15 sub, 15. 5. 2010
    —
ma to je nebitno, to se nece provjeravat (ako film nije posuden)...
a ja ga premotam tek kad ga netko posudi, mislim zasto premotat film ako ga mozda niko nece ponovno posudit Very Happy

#30:  Autor/ica: GinoLokacija: Pula PostPostano: 12:50 ned, 16. 5. 2010
    —
mycky1111 (napisa):
primjera radi, sto vraca funcija nadi_videoteku ako ta videoteka ne postoji? ja sam shvatila NULL, al jesam dobro shvatila?!


i mene bi ovo zanimalo, dal se mozda pretpostavlja da ce doticna postojat Question

#31:  Autor/ica: mycky1111 PostPostano: 13:43 ned, 16. 5. 2010
    —
e, zasto imate posebne mainove?
zar neciji main za videoteku ne bi trebao radit i na moj program?
mislim ime videoteke je ime, ime filma je definirano kao ime_filma, i tako bi se to u mainu trebalo zvat, i ne mozete vi to mijenjat? il?
mislim, nece oni tipkat 100 mainova? nije mi jasno!

e i, ako ja zelim gledat film, mora li mi gledan bit "ne", mislim mogu li gledat film koji je gledan, i kad premotan film, jer mi moram stavit i gledan "ne"

#32:  Autor/ica: GinoLokacija: Pula PostPostano: 14:15 ned, 16. 5. 2010
    —
mycky1111 (napisa):
e, zasto imate posebne mainove?
Question
mycky1111 (napisa):
zar neciji main za videoteku ne bi trebao radit i na moj program?
ako je neovisan o implementaciji, da, ako ne, ne...
uvijek si mos sama napisat
mycky1111 (napisa):
mislim ime videoteke je ime, ime filma je definirano kao ime_filma
di je to tocno definirano Question
mycky1111 (napisa):
mislim, nece oni tipkat 100 mainova?
mislim da ce ih napravit 6 za svaku grupu Very Happy
mycky1111 (napisa):
e i, ako ja zelim gledat film, mora li mi gledan bit "ne", mislim mogu li gledat film koji je gledan, i kad premotan film, jer mi moram stavit i gledan "ne"
ovisi o tvojoj implementaciji sta ces ti stavit ne i sta da, uglavnom ako pogledas film, da bi ga ponovno pogledala moras ga premotat, i obratno

#33:  Autor/ica: mycky1111 PostPostano: 14:36 ned, 16. 5. 2010
    —
nemoj mi toliko upitnika! Laughing
evo kod ovog tvog main-a
kod funkcija za ispis, ti s "v[i]→IME" pristupas i-tom filmu il videoteci i to njegovom imenu. al ono, videoteka ima svoje ime a to je "ime", a film ima svoje ime i to je "ime_filma". znaci, da bi bio neovisan o implementaciji, i meni i tebi bi se iz main-a imenu filma trebalo pristupat s "ime_filma"?!
mozda ja ne kontam, al...

Added after 2 minutes:

Gino (napisa):
void ispisi (film &f) {
cout<<f.naziv<<endl;
...
}


sta je naziv? mislim, znam da je to ime filma, al nece oni citat tvoj kod i gledat kako si ti nazvao film. ja mislim da bi tu trebalo pisat cout<<f.ime_filma<<endl; ?

#34:  Autor/ica: GinoLokacija: Pula PostPostano: 14:52 ned, 16. 5. 2010
    —
a di je on reko da se meni ime filma mora zvat ime_filma?
ocito je da on nece nikad ni ispisivat ime filma na neki takav nacin, bas zato sta nema funkciju koja ga vraca...

#35:  Autor/ica: mycky1111 PostPostano: 15:07 ned, 16. 5. 2010
    —
aha! a dobro, ja sam to malo krivo shvatila, nemoj se odma ljutit Very Happy

#36:  Autor/ica: there is no spoon PostPostano: 16:28 ned, 16. 5. 2010
    —
imam problem sa shvacanjem zadatka
autokucu imam.

nije mi bas najjasnije ovo sa gorivom. imam neke ideje sto bi bilo najlogicnije, ali kako nije precizirano moram pitat

dakle, koliko goriva automobil ima na pocetku (pri kreiranju objekta automobil)? pretpostavljam nula

sto biva sa funkcijom vozi ako nema dovoljno goriva (opet, pretpostavljam da odvozi koliko moze tj dok gorivo ne dodje do nule)

gorivo vrlo vjerojatno ne ide u minus?

e sad, u trenutku posudjivanja automobil valjda ima goriva koliko mu je ostalo od prethodnog vozaca (ili autokuca to vrati na nulu ili neki vec broj)?

osoba koja posudi automobil ga vozi, vozi, dolije gorivo, vozi, dolije gorivo, vozi. meni nije bitno koliko je on sve skupa dolijevao goriva jer to radi o svom trosku neovisno od autokuce, jel tako?
tj., meni je samo bitna razlika u kolicini goriva na pocetku posudbe i pri vracanju?

molim da-ove, ili ne-ove s objasnjenjima nakon svakog odlomka

hvala

#37:  Autor/ica: Kardinal PostPostano: 18:02 ned, 16. 5. 2010
    —
there is no spoon, pretpostavke su ti sve logične i odgovori su ti svugdje ili da ili svejedno Smile ja sam koristio iste takve...

#38:  Autor/ica: Gost PostPostano: 18:12 ned, 16. 5. 2010
    —
ja imam knjižnice, i definitivno mi nije jasno što da radim s ovim stranicama?? kako ću naći najpoderivaniju stranicu,kad ne znam koliko ih ima? jedino,ako ova f-ja ne podere tu stranicu(šala) Razz Very Happy Very Happy što uopće ta funkcija može raditi? provjeravat jeli ta stranica poderana, ali ja ne znam koliko stranica ima Crying or Very sad može netko to malo razjasniti

#39:  Autor/ica: Kardinal PostPostano: 19:29 ned, 16. 5. 2010
    —
Evo jedan primjer maina za autokuce, jedina pretpostavka je da se u klasi automobil nalazi varijabla 'registracija', a u klasi autokuca varijabla 'ime_autokuce'...

Kod:

#include "autokuca.h"
#include <iostream>

int main()
{
   autokuca *A = new autokuca("Vrdoljak", 200);
   autokuca *B = new autokuca("Buric", 250);
   autokuca *C = new autokuca("Dojkic", 220);

   automobil *p = new automobil(*B, "ZG-524-RB", 100, 12);
   automobil *q = new automobil(*C, "RI-243-TB", 120, 15);
   automobil *r = new automobil(*B, "ZG-672-GR", 180, 13);
   automobil *s = new automobil(*A, "OS-935-AT", 160, 15);
   automobil *t = new automobil(*A, "VU-106-ZA", 145, 18);
   automobil *u = new automobil(*C, "ZG-534-IG", 130, 11);
   automobil *v = new automobil(*C, "ZD-714-PB", 140, 14);
   automobil *w = new automobil(*A, "BJ-645-GT", 155, 17);
   automobil *x = new automobil(*A, "ST-702-ME", 160, 15);
   
   cout << "Dostupni automobili u autokuci Dojkic: " << endl;
   vector<automobil*> tren_dost = (autokuca::nadji_autokucu("Dojkic"))->trenutno_dostupni_automobili();
   for (vector<automobil*>::iterator it = tren_dost.begin(); it != tren_dost.end(); ++it)
      cout << (*it)->registracija << endl;

   cout << "Marko iznajmljuje automobil r u autokuci A: " << A->iznajmi(*r, "Marko") << endl;

   cout << "Marko iznajmljuje automobil r: " << r->iznajmi("Marko") << endl;
   
   r->dolij_goriva(200);
   r->vozi(50);
   r->vozi(70);

   cout << "Dostupni automobili u autokuci Buric: " << endl;
   tren_dost = (autokuca::nadji_autokucu("Buric"))->trenutno_dostupni_automobili();
   for (vector<automobil*>::iterator it = tren_dost.begin(); it != tren_dost.end(); ++it)
      cout << (*it)->registracija << endl;
   
   cout << "Marko vraća automobil r u autokucu C: " << C->vrati(*r) << endl;

   cout << "Ivica iznajmljuje automobil s: " << s->iznajmi("Ivica") << endl;
   cout << "Ivica iznajmljuje automobil t: " << t->iznajmi("Ivica") << endl;
   
   p->dolij_goriva(30);
   p->vozi(50);

   cout << "Marin iznajmljuje automobil x: " << x->iznajmi("Marin") << endl;
   cout << "Branko iznajmljuje automobil x: " << x->iznajmi("Branko") << endl;

   cout << "Iznajmljeni automobili u A: " << endl;
   map<string, automobil*> iznajmljeni_u_A = A->iznajmljeni_automobili();
   for (map<string, automobil*>::iterator it = iznajmljeni_u_A.begin(); it != iznajmljeni_u_A.end(); ++it)
      cout << (*it).first << " " << (*it).second->registracija << endl;

   cout << "Sve autokuce: " << endl;
   for (list<autokuca*>::iterator it = autokuca::sve_autokuce.begin(); it != autokuca::sve_autokuce.end(); ++it)
      cout << (*it)->ime_autokuce << endl;

   cout << "Automobil registracije BJ-645-GT nalazi se u autokuci: " << automobil::nadji_automobil("BJ-645-GT")->naziv_autokuce() << endl;

   cout << "Vraćam x u autokucu A: " << x->vrati(*A) << endl;
   cout << "Ivan iznajmljuje r: " << r->iznajmi("Ivan") << endl;
   
   cout << "Osobe koje su iznajmile automobil r: " << endl;
   set<string> osobe_r = r->osobe_koje_su_iznajmile_automobil();
   for (set<string>::iterator it = osobe_r.begin(); it != osobe_r.end(); ++it)
      cout << *it << endl;

   cout << "Popis trenutno dostupnih automobila: " << endl;
   vector<automobil*> d = automobil::trenutno_dostupni_automobili();
   for (vector<automobil*>::iterator it = d.begin(); it != d.end(); ++it)
      cout << (*it)->registracija << endl;

   cout << "Vračam s u autokucu B: " << s->vrati(*B) << endl;
   cout << "Danijel iznajmljuje s: " << s->iznajmi("Danijel") << endl;
   s->dolij_goriva(80);
   s->vozi(80);
   cout << "Danijel vraća s u B: " << B->osoba_vraca_automobil("Danijel") << endl;

   automobil *najpos = automobil::najposudjivaniji_automobil();
   cout << "Najposuđivaniji automobil: " << najpos->registracija << endl;

   s->dolij_goriva(40);
   s->vozi(40);

   najpos = automobil::najposudjivaniji_automobil();
   cout << "Najposuđivaniji automobil: " << najpos->registracija << endl;

   // testiranje destruktora
   cout << "Obrisan x!" << endl;
   delete x;

   cout << "Automobili dostupni u A: " << endl;
   tren_dost = A->trenutno_dostupni_automobili();
   for (vector<automobil*>::iterator it = tren_dost.begin(); it != tren_dost.end(); ++it)
      cout << (*it)->registracija << endl;
   cout << "Obrisani w, t i s" << endl;

   delete w; delete t; delete s;
   
   cout << "Automobili dostupni u A: " << endl;
   tren_dost = A->trenutno_dostupni_automobili();
   for (vector<automobil*>::iterator it = tren_dost.begin(); it != tren_dost.end(); ++it)
      cout << (*it)->registracija << endl;

   cout << "Obrisana autokuca A" << endl;      
   delete A;
   cout << "Sve autokuce: " << endl;
   for (list<autokuca*>::iterator it = autokuca::sve_autokuce.begin(); it != autokuca::sve_autokuce.end(); ++it)
      cout << (*it)->ime_autokuce << endl;

   return 0;
}


a ispis bi trebao biti
Citat:

Dostupni automobili u autokuci Dojkic:
RI-243-TB
ZD-714-PB
ZG-534-IG
Marko iznajmljuje automobil r u autokuci A: 0
Marko iznajmljuje automobil r: 1
Dostupni automobili u autokuci Buric:
ZG-524-RB
Marko vraća automobil r u autokucu C: -640
Ivica iznajmljuje automobil s: 1
Ivica iznajmljuje automobil t: 0
Marin iznajmljuje automobil x: 1
Branko iznajmljuje automobil x: 0
Iznajmljeni automobili u A:
Ivica OS-935-AT
Marin ST-702-ME
Sve autokuce:
Vrdoljak
Buric
Dojkic
Automobil registracije BJ-645-GT nalazi se u autokuci: Vrdoljak
Vraćam x u autokucu A: 160
Ivan iznajmljuje r: 1
Osobe koje su iznajmile automobil r:
Ivan
Marko
Popis trenutno dostupnih automobila:
BJ-645-GT
RI-243-TB
ST-702-ME
VU-106-ZA
ZD-714-PB
ZG-524-RB
ZG-534-IG
Vračam s u autokucu B: 410
Danijel iznajmljuje s: 1
Danijel vraća s u B: 410
Najposuđivaniji automobil: ZG-672-GR
Najposuđivaniji automobil: OS-935-AT
Obrisan x!
Automobili dostupni u A:
BJ-645-GT
OS-935-AT
VU-106-ZA
Obrisani w, t i s
Automobili dostupni u A:
Obrisana autokuca A
Sve autokuce:
Buric
Dojkic

#40:  Autor/ica: TindarielLokacija: Zagreb PostPostano: 20:34 ned, 16. 5. 2010
    —
Kardinal (napisa):
Evo jedan primjer maina za autokuce


Tenkju veri mač Smile

#41:  Autor/ica: MilojkoLokacija: Hilbertov hotel PostPostano: 20:41 ned, 16. 5. 2010
    —
Anonymous (napisa):
ja imam knjižnice, i definitivno mi nije jasno što da radim s ovim stranicama?? kako ću naći najpoderivaniju stranicu,kad ne znam koliko ih ima? jedino,ako ova f-ja ne podere tu stranicu(šala) Razz Very Happy Very Happy što uopće ta funkcija može raditi? provjeravat jeli ta stranica poderana, ali ja ne znam koliko stranica ima Crying or Very sad može netko to malo razjasniti

ja sam tu funkciju napravio tak da u skup parova ubacujem parove. možd bi to ljepše bilo sa map<int, int>, al dobro. za svaki poziv te funkcije skrolam po skupu i tražim dal je u njemu neki par kojem je prvi element broj_stranice koji tražim. ak ga ima, onda mu sam povećam ovaj drugi element za jedan, ak ga nema, ubacim unutra par (broj_stranice, 1).
men opet malo nisu jasne ove funkcije posudi, vrati, u knjizi, i u knjižnici one dvije funkcije vraćanja s gotovo jednakim opisom

#42:  Autor/ica: TindarielLokacija: Zagreb PostPostano: 21:39 ned, 16. 5. 2010
    —
E, da... na to da automobil i autokuća mogu biti uništeni sam potpuno zaboravila...

Kad automobil može biti uništen? U sudaru? Ili samo tak, sam od sebe, može odlučit crknut? I od kud programu treba doći informacija da je automobil uništen?

Autokuća je uništena ako nema ni jednog automobila? Ili se treba još nešto dogodit...?

#43:  Autor/ica: Kardinal PostPostano: 21:49 ned, 16. 5. 2010
    —
Tindariel (napisa):
E, da... na to da automobil i autokuća mogu biti uništeni sam potpuno zaboravila...

Kad automobil može biti uništen? U sudaru? Ili samo tak, sam od sebe, može odlučit crknut? I od kud programu treba doći informacija da je automobil uništen?

Autokuća je uništena ako nema ni jednog automobila? Ili se treba još nešto dogodit...?


Automobil može bit uništen naredbom delete Smile Imaš primjer u main-u. Samo oprez, delete se može koristiti na objektu koji je stvoren s new, u suprotnom dolazi do havarije Smile

#44:  Autor/ica: GinoLokacija: Pula PostPostano: 22:15 ned, 16. 5. 2010
    —
moze bit unisten i bez delete, pogledaj u mom mainu Very Happy

#45:  Autor/ica: Kardinal PostPostano: 22:27 ned, 16. 5. 2010
    —
Gino (napisa):
moze bit unisten i bez delete, pogledaj u mom mainu Very Happy


S obzirom da ne vidim ništa što bi asociralo na uništavanje objekata, pretpostavljam da je kraj programa u pitanju Smile ili ne? Shocked

#46:  Autor/ica: TindarielLokacija: Zagreb PostPostano: 22:39 ned, 16. 5. 2010
    —
Ali, u svakom slučaju, uništava ga se tek u mainu? Onda se main valjda pobrine da se taj automobil zbriše i iz liste svih automobila, pa ne bi trebalo pazit na uvjet je li taj automobil još živ... Barem se nadam Shocked

#47:  Autor/ica: Kardinal PostPostano: 22:44 ned, 16. 5. 2010
    —
Tindariel (napisa):
Ali, u svakom slučaju, uništava ga se tek u mainu? Onda se main valjda pobrine da se taj automobil zbriše i iz liste svih automobila, pa ne bi trebalo pazit na uvjet je li taj automobil još živ... Barem se nadam Shocked


Ne brine se main o njihovom brisanju iz liste, brine se jedna vesela funkcija zastrašujućeg imena koja se poziva pri uništavanju objekata Very Happy

#48:  Autor/ica: TindarielLokacija: Zagreb PostPostano: 22:51 ned, 16. 5. 2010
    —
Kardinal (napisa):
Ne brine se main o njihovom brisanju iz liste, brine se jedna vesela funkcija zastrašujućeg imena koja se poziva pri uništavanju objekata Very Happy


Zar se ne pozivaju destruktori na kraju programa tek? Ili se varam Laughing shame on me!

#49:  Autor/ica: Kardinal PostPostano: 22:56 ned, 16. 5. 2010
    —
Tindariel (napisa):


Zar se ne pozivaju destruktori na kraju programa tek? Ili se varam Laughing shame on me!


ili na kraju kad se automatski prikolju svi objekti ili kad se pozove delete. Dakle, stavljaš to uklanjanje iz liste u destruktor.

#50:  Autor/ica: TindarielLokacija: Zagreb PostPostano: 23:02 ned, 16. 5. 2010
    —
Kardinal (napisa):
ili na kraju kad se automatski prikolju svi objekti ili kad se pozove delete. Dakle, stavljaš to uklanjanje iz liste u destruktor.


Ma to jesam, ali me zanima može li se usred programa nekako uništiti neki automobil pa da bi morala provjeravati u zadnjoj funkciji koja kaže "vraća automobil koji je najviše puta bio posuđen (a da je još živ)...".

edit: Upravo mi je došlo do glave da ako pozovem delete da se destruktor odmah izvrši Embarassed dakle, jasno mi je Smile


Zadnja promjena: Tindariel; 23:45 ned, 16. 5. 2010; ukupno mijenjano 1 put.

#51:  Autor/ica: GinoLokacija: Pula PostPostano: 23:21 ned, 16. 5. 2010
    —
Kardinal (napisa):
S obzirom da ne vidim ništa što bi asociralo na uništavanje objekata, pretpostavljam da je kraj programa u pitanju Smile ili ne? Shocked


skoro

Kod:
ispisi(videoteka::filmovi_pogledani_svuda("Sus"));

// to be continued...

    {
    film p5(pula,"p5",50);   
    cout << pula.vrati(r1)   << " " ;
    cout << r2.gledaj()      << " " ;
    cout << r2.premotaj()    << " " ;
    cout << r2.vrati(pula)   << endl;
    cout << p5.posudi("Sus") << " " ;
    cout << r2.posudi("Sus") << endl;
    }
    cout << r2.posudi("Sus") << endl;
    cout << endl;


Very Happy

#52:  Autor/ica: Kardinal PostPostano: 23:23 ned, 16. 5. 2010
    —
Hm, ne znam zbog čega bi osobi koja ne zna tekst zadatka išta od ovog impliciralo da se neki objekt uništava... Confused

#53:  Autor/ica: GinoLokacija: Pula PostPostano: 23:30 ned, 16. 5. 2010
    —
Kardinal (napisa):
Hm, ne znam zbog čega bi osobi koja ne zna tekst zadatka išta od ovog impliciralo da se neki objekt uništava... Confused


jer to nema veze sa textom zadatke film p5 je definiram u onom bloku, i na kraju istog se poziva njegov destruktor

#54:  Autor/ica: Kardinal PostPostano: 23:38 ned, 16. 5. 2010
    —
Gino (napisa):


jer to nema veze sa textom zadatke film p5 je definiram u onom bloku, i na kraju istog se poziva njegov destruktor


u, da, fakat... sorry

#55:  Autor/ica: tmaruscaLokacija: 1/039 PostPostano: 8:25 pon, 17. 5. 2010
    —
vidim nitko ne spominje pa moram ja, valjda nije glupo pitanje:/

struct knjiznica
struct knjiga
unutar struct knjiga je fukncija string naziv_knjiznice

kak se to izvodi?

#56:  Autor/ica: ToMeK PostPostano: 10:02 pon, 17. 5. 2010
    —
there is no spoon (napisa):
imam problem sa shvacanjem zadatka
autokucu imam.

nije mi bas najjasnije ovo sa gorivom. imam neke ideje sto bi bilo najlogicnije, ali kako nije precizirano moram pitat

dakle, koliko goriva automobil ima na pocetku (pri kreiranju objekta automobil)? pretpostavljam nula

sto biva sa funkcijom vozi ako nema dovoljno goriva (opet, pretpostavljam da odvozi koliko moze tj dok gorivo ne dodje do nule)

gorivo vrlo vjerojatno ne ide u minus?

e sad, u trenutku posudjivanja automobil valjda ima goriva koliko mu je ostalo od prethodnog vozaca (ili autokuca to vrati na nulu ili neki vec broj)?

osoba koja posudi automobil ga vozi, vozi, dolije gorivo, vozi, dolije gorivo, vozi. meni nije bitno koliko je on sve skupa dolijevao goriva jer to radi o svom trosku neovisno od autokuce, jel tako?
tj., meni je samo bitna razlika u kolicini goriva na pocetku posudbe i pri vracanju?

molim da-ove, ili ne-ove s objasnjenjima nakon svakog odlomka

hvala


bilo bi lijepo da nam pisac zadatka objavi točno šta se traži... Mad Mad

hvala...

#57:  Autor/ica: MilojkoLokacija: Hilbertov hotel PostPostano: 10:33 pon, 17. 5. 2010
    —
tmarusca (napisa):
vidim nitko ne spominje pa moram ja, valjda nije glupo pitanje:/

struct knjiznica
struct knjiga
unutar struct knjiga je fukncija string naziv_knjiznice

kak se to izvodi?

mislim dabi ta funkcija trebala vratiti ime knjižnice u kojoj se data knjiga nalazi.

#58:  Autor/ica: RazLokacija: Tamo gdje ribe jedu avanturiste... PostPostano: 10:49 pon, 17. 5. 2010
    —
Grupa s knjiznicama... ne znam dal ste to tako shvatili, al kad se knjiga vrati i kad joj se zaracuna cijena popravka i eventualno preseljenja, stranice koje su bile podrapane se poprave. Very Happy

#59:  Autor/ica: CobsLokacija: Geto PostPostano: 12:32 pon, 17. 5. 2010
    —
Milojko (napisa):
Anonymous (napisa):
ja imam knjižnice, i definitivno mi nije jasno što da radim s ovim stranicama?? kako ću naći najpoderivaniju stranicu,kad ne znam koliko ih ima? jedino,ako ova f-ja ne podere tu stranicu(šala) Razz Very Happy Very Happy što uopće ta funkcija može raditi? provjeravat jeli ta stranica poderana, ali ja ne znam koliko stranica ima Crying or Very sad može netko to malo razjasniti

ja sam tu funkciju napravio tak da u skup parova ubacujem parove. možd bi to ljepše bilo sa map<int, int>, al dobro. za svaki poziv te funkcije skrolam po skupu i tražim dal je u njemu neki par kojem je prvi element broj_stranice koji tražim. ak ga ima, onda mu sam povećam ovaj drugi element za jedan, ak ga nema, ubacim unutra par (broj_stranice, 1).
men opet malo nisu jasne ove funkcije posudi, vrati, u knjizi, i u knjižnici one dvije funkcije vraćanja s gotovo jednakim opisom


nisam rjesio tu grupu al ja bi to ovak rjesio:

stavio bi u strukturu knjiga:
vector< pair< int, int > > poderane_str;
gdje bi pamtio poderane stranice ( nekako mi je lakše raditi sa vektorom nego sa skupom kao što je radio Milojko jer bi kod skupa trebo kod svakog deranja neke stranice brisati elemente skupa i ubacivati nove ).
te bi stavio još jedan:
set< int > str;
a u njemu bi cuvo stranice koje je osoba koja ima knjigu kod sebe potrgala. ( Naravno pri vraćanju knjige počistio bi taj skup ).

Nekako mi se to čini malo lakše za baratat s tim spremnicima u ovom slučaju. No radite kak 'oćete.

Rješio sam grupu s filmom i videotekom i napravil main ( koji ću staviti u attachment ):

Samo jedna napomena: kod mene je u strukturi film, ime filma mi predstavlja varijabla string ime; ( a u main-u sam na dosta mjesta ispisivo ime (filma ) ). Pa sam trebate u main-u sve stringove ime zamjenit sa stringom koji vama predstavlja ime filma.

Ispis koji bi trebali dobiti je ispod main-a zakomentiran ( dosta su bitni i razmaci izneđu redova u zadnjem djelu... ). Ako dobijete neku poruku u ispisu koja nije dio mog ispisa koji je ubačen u poruci će pisati što ne valja. ( Provjeravo sam si taj main, ali ne baš detaljno, pa svakako ako mi nađete grešku javite mi!!! ).

Edit: sad sam si našo grešku... bum ispravio ( kod cijena vraćanja ) // RJESENO


Zadnja promjena: Cobs; 13:18 pon, 17. 5. 2010; ukupno mijenjano 3 put/a.


main.cpp
 Description:

Download
 Filename:  main.cpp
 Filesize:  87.11 KB
 Downloaded:  197 Time(s)


#60:  Autor/ica: Gost PostPostano: 12:54 pon, 17. 5. 2010
    —
Što mora raditi funkcija osoba_vraca_automobil?

U zadatku piše samo što ta funkcija vraća:

Kod:
int osoba_vraca_automobil(string ime_osobe); // vraća cijenu koju osoba treba platiti


Da li funkcija ne radi ništa, nego je samo informativnog karaktera, npr. unese se ime osobe, vidi se koliko ta osoba treba platiti, i onda se automobil vrati preko funkcije int vrati(automobil& a);, ili se automobil može vratiti i preko funkcije int osoba_vraca_automobil() i preko int vrati(); Question

#61:  Autor/ica: CobsLokacija: Geto PostPostano: 13:21 pon, 17. 5. 2010
    —
mislim da ti ime funkcije samo govori što ta funkcija radi ( ono što vraća je samo posljedica onoga što radi )

#62:  Autor/ica: tmaruscaLokacija: 1/039 PostPostano: 16:23 pon, 17. 5. 2010
    —
Milojko (napisa):
tmarusca (napisa):
vidim nitko ne spominje pa moram ja, valjda nije glupo pitanje:/

struct knjiznica
struct knjiga
unutar struct knjiga je fukncija string naziv_knjiznice

kak se to izvodi?

mislim dabi ta funkcija trebala vratiti ime knjižnice u kojoj se data knjiga nalazi.


jasno je sto vraca, pitanje je kako to izvesti?

#63:  Autor/ica: MilojkoLokacija: Hilbertov hotel PostPostano: 16:36 pon, 17. 5. 2010
    —
ja sam stavio listu u knjižaru

#64:  Autor/ica: GinoLokacija: Pula PostPostano: 16:36 pon, 17. 5. 2010
    —
tmarusca (napisa):
Milojko (napisa):
tmarusca (napisa):
vidim nitko ne spominje pa moram ja, valjda nije glupo pitanje:/

struct knjiznica
struct knjiga
unutar struct knjiga je fukncija string naziv_knjiznice

kak se to izvodi?

mislim dabi ta funkcija trebala vratiti ime knjižnice u kojoj se data knjiga nalazi.


jasno je sto vraca, pitanje je kako to izvesti?


u strkturi knjiga je pametno imat pointer na knjiznicu kojoj pripada

shodno tome cijela se funkcija svodi na
return this→knjizn→naziv;
ukoliko se taj pointre naziva knjizn, a ime knjiznice u strukturi knjiznica, naziv

#65:  Autor/ica: tmaruscaLokacija: 1/039 PostPostano: 16:47 pon, 17. 5. 2010
    —
bas sam se htio ispricati zbog gluposti jer skuzih Ehm?

#66:  Autor/ica: CobsLokacija: Geto PostPostano: 16:58 pon, 17. 5. 2010
    —
kak ste vi napravili funkciju bool premotaj u zadatku s videotekom?

piše u zadatku da funkcija vraća istinu ako je film gledan!

mene zanima ova situacija imam npr.

Kod:


        film A( ... );
        ...
        Netko je posudio film
        ...
        A.gledaj();
        A.premotaj();
        A.premotaj();

 


pa sad, što se vraća u drugom pozivu funkcije film::premotaj?
true ili false ( film je gledan, ali tada mi nema smisla uopce vraćanje istine ili laži na toj funkciji, jer bi trebo vratiti istinu )

#67:  Autor/ica: GinoLokacija: Pula PostPostano: 17:05 pon, 17. 5. 2010
    —
ispis je 1 1 0
premotavanje je suprotno gledanje...
spomenuo je to prije...

nego mene muci sljedece
Kod:
if(F.size()==0) return F;
            for(i=0;i<F.size()-1;++i)
                for(j=i+1;j<F.size();++j)
                    if (F[i]->ime_filma > F[j]->ime_filma){
                        film* t=F[i];
                        F[i]=F[j];
                        F[j]=t;
                        }

naime bez onog if(F.size()==0) return F; pukne program ako treba vratit pratan vektor, zasto Question

#68:  Autor/ica: Gost PostPostano: 18:44 pon, 17. 5. 2010
    —
Vezano uz ono prije napisano, mislim da i funkcija vrati i osoba_vraca zapravo vrate (film,knjigu,auto šta već) bar sam ja tako shvatila i napravila. Funkcija vrati cijenu koju treba platiti i tada se taj film smatra vraćenim. Ako nije tako nadam se da će me netko ispraviti pa da i ja svoju zadaću prepravim:)

#69:  Autor/ica: lajkaLokacija: Zagreb PostPostano: 18:49 pon, 17. 5. 2010
    —
[quote="Gino"]
Citat:
(...)
ispisi(zagreb);

cout << z5.gledaj() << endl;
cout << rijeka.vrati(z5) << endl;
cout << r3.gledaj() << endl;
cout << r3.gledaj() << endl;
cout << r3.premotaj() << endl;
cout << r3.premotaj() << endl;
cout << rijeka.vrati(r3) << endl;
cout << z4.gledaj() << endl;
cout << z4.vrati(pula) << endl;
cout << endl;



trebalo bi se ispisat sljedece:
Citat:

Zagreb
Cijena premotavanja: 5, cijena preseljenja: 20
Trenutno dostupni filmovi:
z1
z2
z3

1
80
1
0
1
0
75
1
90
[/qoute]


Mene zanima kako si tu dobio da je cijena vracanja 80, jer vracamo film z5 u videoteku Rijeka, pa bi po mome tribalo ispasti:
cijena vracanja = 40
cijena premotavanja = 15
cijena preseljenja = 35
ukupno = 90

isto sa: cout << z4.vrati(pula) << endl;
sto ispise : 90
a meni ispise 95.

#70:  Autor/ica: GinoLokacija: Pula PostPostano: 18:56 pon, 17. 5. 2010
    —
premotavanje se desi u videoteci koja je vlasnik, dakle u zagrebu u konkretnom slucaju

#71:  Autor/ica: lajkaLokacija: Zagreb PostPostano: 19:38 pon, 17. 5. 2010
    —
Gino (napisa):
premotavanje se desi u videoteci koja je vlasnik, dakle u zagrebu u konkretnom slucaju


tnx Smile I sto se tice ovog - "Videoteke su povezane, pa osoba ne može istovremeno posuditi 2 filma u 2 videoteke (ali može u drugoj, nakon što film iz prve videoteke vrati u neku videoteku)." - da li to znaci
da osoba moze posudit samo jedan film u danom trenutku?

ispricavam se na glupim pitanjima, al me strah da nesto ne shvatim krivo..

#72:  Autor/ica: Gost PostPostano: 19:53 pon, 17. 5. 2010
    —
ja isto baš ne razumijem razliku između funkcija int osoba_vraca_knjigu(string ime_osobe) i int osoba_vraca_knjigu(string ime_osobe) , jeli razlika samo u parametru koji funkcija prima?? a inače rade isto?
imeni kompajler stalno javlja grešku u konstruktoru od knjige
knjiga(knjiznica& k, string ime_knjige, unsigned int cijena_popravka) a greška je: uninitialized reference member ‘knjiga::ka’ ..ne razumijem u čemu je problem?

#73:  Autor/ica: GinoLokacija: Pula PostPostano: 20:01 pon, 17. 5. 2010
    —
osoba ne moze posudit dva filma u istom trenutku da

a sta tebe briga jel to radi isto il ne Laughing
ona greska govori o tome da si vjerojatnu u strukturu od knjige stavio referencu na knjiznicu, referencu ne mos stavit ako odmah ne kazes na sto referira, dakle tamo bi trebao ic pointer...

#74:  Autor/ica: TindarielLokacija: Zagreb PostPostano: 20:41 pon, 17. 5. 2010
    —
Zašto mi kompajler javlja da string (u deklaraciji) nije tip kad rastavim program na .h i .cpp datoteku? Inače, kad je sve u jednoj datoteci, nema takvih primjedbi. Confused

#75:  Autor/ica: Gost PostPostano: 20:50 pon, 17. 5. 2010
    —
ispravak(ako nije očito Smile ) mislio sam razlika između funkcija: int osoba_vraca_knjigu(string ime_osobe) i int vrati(knjiga& f)
i s ovim objektima što uništavamo, to radimo u destruktoru,izbacujući ih iz statičke liste ili? i kako knjiga može biti unštena dok je posuđena?

#76:  Autor/ica: Gost PostPostano: 20:53 pon, 17. 5. 2010
    —
da znam da ne može referenca, ali ne može ni pointer ....ništa ne prolazi Confused

#77:  Autor/ica: GinoLokacija: Pula PostPostano: 21:09 pon, 17. 5. 2010
    —
Kod:
struct film{
    videoteka *video;
    //...
film::film(videoteka& v, string ime_filma, unsigned int cijena_vracanja){
    video=&v;
    //...

tako nesto bi trebalo proc...

int osoba_vraca_knjigu(string ime_osobe) i int vrati(knjiga& f) razlika je u imenu funkcije Very Happy i parametru kojeg primaju, rade i vracaju isto Smile

Citat:
kako knjiga može biti unštena dok je posuđena


lako, pozoves destruktor npr Very Happy


Citat:
Zašto mi kompajler javlja da string (u deklaraciji) nije tip kad rastavim program na .h i .cpp datoteku?


stavi includove na pocetku .h datoteke

#78:  Autor/ica: Gost PostPostano: 21:30 pon, 17. 5. 2010
    —
da, to prođe..ali mi sad javlja greške tipa: undefined reference to `knjiga::sve_knjige' i tako na sve statičke funkcije?

#79:  Autor/ica: RazLokacija: Tamo gdje ribe jedu avanturiste... PostPostano: 21:46 pon, 17. 5. 2010
    —
Tindariel (napisa):
Zašto mi kompajler javlja da string (u deklaraciji) nije tip kad rastavim program na .h i .cpp datoteku? Inače, kad je sve u jednoj datoteci, nema takvih primjedbi. Confused


U oba ili samo u .h ti fali using namespace std;

#80:  Autor/ica: GinoLokacija: Pula PostPostano: 21:59 pon, 17. 5. 2010
    —
Anonymous (napisa):
da, to prođe..ali mi sad javlja greške tipa: undefined reference to `knjiga::sve_knjige' i tako na sve statičke funkcije?

jesi li ih inicjalizirao van svih struktura?
tipa
list<knjiga*> knjiga::sve_knjige;
i ako se time koristis u funkciji koja nije iz te strukture moras pisat bas tako, knjiga::sve_knjige...

#81:  Autor/ica: Gost PostPostano: 22:20 pon, 17. 5. 2010
    —
da to je to Very Happy ja sam mislio da se automatski to postavlja na nulu,tj. prazno, i da nije potrebno inicijalizirat:roll: hvala! sad sve radi, još kad bi netko stavia main i za knjižnicu Laughing ma ne treba, to je sad lakši dio Razz

#82:  Autor/ica: vinkoLokacija: PMF-MO 214 PostPostano: 5:15 uto, 18. 5. 2010
    —
Evo maina za videoteku (na strukturu film dodajte još element string ime_filma):

Kod:
#include <iostream>
#include <string>
#include <list>
using namespace std;

#include "videoteka.h"

void ispisiFilmove(const vector<film*>& f) {
   for (int i = 0; i<f.size(); ++i)
      cout << f[i]->ime_filma << endl;
   cout << endl;
}
void ispisiSet(const set<string>& ss) {
   for (set<string>::const_iterator i = ss.begin(); i != ss.end(); ++i)
      cout << *i << endl;
   cout << endl;
}

int main() {
   videoteka a("videoteka a", 2, 7);
   film prvi(a, "prvi", 10);
   film drugi(a, "drugi", 15);
   {
   film treci(a, "treci", 11);


   videoteka b("videoteka b", 1, 5);
   film cetvrti(b, "cetvrti", 8);

   cout << a.posudi(cetvrti, "ivo ivic") << endl; // 0; film nije u toj videoteci
   cout << b.posudi(cetvrti, "ivo ivic") << endl; // 1; ivo ivic posudjuje taj film

   cout << a.posudi(prvi, "ivo ivic") << endl; // 0; ivo ivic je vec posudio film
   
   cout << cetvrti.premotaj() << endl; // 0; film jos nije pogledan
   cout << cetvrti.gledaj() << endl; // 1
   cout << cetvrti.premotaj() << endl; // 1
   cout << cetvrti.gledaj() << endl; // 1
   cout << a.vrati(cetvrti) << endl; // 16 = 7(preseljenje iz A u B) +8(posudjivanje filma ) + 1(premotavanje u B)

   cout << a.posudi(prvi, "ivo ivic") << endl; // 1;
   cout << a.posudi(prvi, "marko markic") << endl; // 0; film je vec posudjen

   ispisiFilmove(a.trenutno_dostupni_filmovi());
   // drugi
   // treci
   //

   ispisiFilmove(film::trenutno_dostupni_filmovi());
   // cetvrti
   // drugi
   // treci
   //

   cout << b.osoba_vraca_film("jozo jozic") << endl; // 0
   cout << b.osoba_vraca_film("ivo ivic") << endl; // 15 = 5(preseljenje iz B u A) + 10(posudjivanje filma)

   videoteka *v = videoteka::nadji_videoteku("ove nema"); // NULL
   v = videoteka::nadji_videoteku("videoteka b"); // v = &b

   ispisiFilmove(a.filmovi_pogledani("ivo ivic"));
   // prvi
   //
   ispisiFilmove(a.filmovi_pogledani_svuda("ivo ivic"));
   // cetvrti
   // prvi
   //
   }
   ispisiFilmove(a.filmovi_pogledani_svuda("ivo ivic"));
   // prvi
   //
   ispisiFilmove(film::trenutno_dostupni_filmovi());
   // drugi
   // prvi
   //

   film* f = film::nadji_film("nema ga"); // NULL
   f = film::nadji_film("prvi"); // f = &prvi;
   f = film::najposudjivaniji_film(); // f = &prvi;

   ispisiSet(f.osobe_koje_su_posudile_film());
   // ivo ivic
   //

   return 0;
}

#83:  Autor/ica: Gost PostPostano: 9:33 uto, 18. 5. 2010
    —
vinko (napisa):
Evo maina za videoteku


Biste li mogli staviti i main za autokucu?
Hvala! Smile

#84:  Autor/ica: GinoLokacija: Pula PostPostano: 9:44 uto, 18. 5. 2010
    —
vinko (napisa):
Evo maina za videoteku (na strukturu film dodajte još element string ime_filma):


jel se ocekuje da to tako posaljem, mislim meni se ime filma naziva naziv i za isprobat main rade promijenim vasu funkciju nego svoj kod Very Happy

#85:  Autor/ica: vinkoLokacija: PMF-MO 214 PostPostano: 9:51 uto, 18. 5. 2010
    —
Anonymous (napisa):
vinko (napisa):
Evo maina za videoteku


Biste li mogli staviti i main za autokucu?
Hvala! Smile


evo (a uskoro će i za treću grupu doći main):
jedino u strukturu treba dodati element string registracija (u mainovima koji će biti na testiranju se neće koristiti).

Kod:

#include "autokuca.h"

#include <iostream>
#include <string>
#include <list>
#include <set>
#include <map>
using namespace std;


void ispisiAutomobile(const vector<automobil*>& va) {
   for (int i = 0; i<va.size(); ++i)
      cout << va[i]->registracija << endl;
   cout << endl;
}
void ispisiTrenutnoIznajmljene(const map<string, automobil*>& msa) {
   for (map<string, automobil*>::const_iterator i = msa.begin(); i != msa.end(); ++i)
      cout << i->first << ": " << i->second->registracija << endl;
   cout << endl;
}
void ispisiSet(const set<string>& ss) {
   for (set<string>::const_iterator i = ss.begin(); i != ss.end(); ++i)
      cout << *i << endl;
   cout << endl;
}

int main() {
   autokuca a("autokuca a", 7);
   automobil prvi(a, "ZG111AA", 10, 2);
   automobil drugi(a, "ZG222AA", 15, 2);
   {
   automobil treci(a, "ZG333AA", 11, 3);


   autokuca b("autokuca b", 5);
   automobil cetvrti(b, "ZG444BB", 8, 3);

   cout << a.iznajmi(cetvrti, "ivo ivic") << endl; // 0; automobil nije u toj autokuci
   cout << b.iznajmi(cetvrti, "ivo ivic") << endl; // 1; ivo ivic iznajmljuje taj automobil

   cout << a.iznajmi(prvi, "ivo ivic") << endl; // 0; ivo ivic je vec iznamio automobil
   
   cetvrti.vozi(10);
   cetvrti.vozi(20);
   cetvrti.dolij_goriva(15);
   cout << a.vrati(cetvrti) << endl; // 60 = 7(preseljenje iz A u B) +8(iznajmljivanje) + 45(goriva nedostaje za 15 km)

   cout << a.iznajmi(prvi, "ivo ivic") << endl; // 1;
   cout << a.iznajmi(prvi, "marko markic") << endl; // 0; automobil je vec iznajmljen

   ispisiAutomobile(a.trenutno_dostupni_automobili());
   // ZG222AA
   // ZG333AA
   //

   ispisiAutomobile(automobil::trenutno_dostupni_automobili());
   // ZG222AA
   // ZG333AA
   // ZG444BB
   //

   ispisiTrenutnoIznajmljene(a.iznajmljeni_automobili());
   // ivo ivic: ZG111AA
   //

   cout << b.osoba_vraca_automobil("jozo jozic") << endl; // 0
   cout << b.osoba_vraca_automobil("ivo ivic") << endl; // 15 = 5(preseljenje iz B u A) + 10(iznajmljivanje)

   autokuca *v = autokuca::nadji_autokucu("ove nema"); // NULL
   v = autokuca::nadji_autokucu("autokuca b"); // v = &b


   ispisiAutomobile(automobil::trenutno_dostupni_automobili());
   // ZG111AA
   // ZG222AA
   // ZG333AA
   // ZG444BB
   //
   }
   ispisiAutomobile(automobil::trenutno_dostupni_automobili());
   // ZG111AA
   // ZG222AA
   //
   ispisiSet(prvi.osobe_koje_su_iznajmile_automobil());
   // ivo ivic
   //

   automobil* f = automobil::nadji_automobil("nema ga"); // NULL
   f = automobil::nadji_automobil("ZG111AA"); // f = &prvi;
   f = automobil::najposudjivaniji_automobil(); // f = &prvi;

   return 0;
}


Added after 1 minutes:

Gino (napisa):
vinko (napisa):
Evo maina za videoteku (na strukturu film dodajte još element string ime_filma):


jel se ocekuje da to tako posaljem, mislim meni se ime filma naziva naziv i za isprobat main rade promijenim vasu funkciju nego svoj kod Very Happy


u mainovima se to neće koristit. To sam stavio samo da se lakše snađete.

Evo i maina za knjiznicu (ime_knjige je dodano u strukturu samo radi lakseg snalazenja. U testnim-mainovima se nece pojavljivati):

Kod:
#include "knjiznica.h"
#include <iostream>
#include <string>
#include <vector>
#include <string>
#include <list>
using namespace std;

void ispisiKnjige(const vector<knjiga*>& f) {
   for (int i = 0; i<f.size(); ++i)
      cout << f[i]->ime_knjige << endl;
   cout << endl;
}
void ispisiSet(const set<string>& ss) {
   for (set<string>::const_iterator i = ss.begin(); i != ss.end(); ++i)
      cout << *i << endl;
   cout << endl;
}

int main() {
   knjiznica a("knjiznica a", 7);
   knjiga prva(a, "prva", 10);
   knjiga druga(a, "druga", 15);
   {
   knjiga treca(a, "treca", 11);


   knjiznica b("knjiznica b", 5);
   knjiga cetvrta(b, "cetvrta", 8);

   cout << a.posudi(cetvrta, "ivo ivic") << endl; // 0; knjiga nije u toj knjiznici
   cout << b.posudi(cetvrta, "ivo ivic") << endl; // 1; ivo ivic posudjuje tu knjigu

   cout << a.posudi(prva, "ivo ivic") << endl; // 0; ivo ivic je vec posudio knjigu
   
   cout << cetvrta.citaj(111) << endl; // 1; stranica je citava
   cout << cetvrta.poderi(111) << endl; // 1; stranica nije bila poderana prije
   cout << cetvrta.citaj(100) << endl; // 1; stranica je citava
   cout << cetvrta.citaj(111) << endl; // 0; stranica je poderana
   cout << cetvrta.poderi(123) << endl; // 1; stranica nije bila poderana prije
   cout << a.vrati(cetvrta) << endl; // 23 = 7(preseljenje iz A u B) + 16(popravak 2 stranice)

   cout << a.posudi(prva, "ivo ivic") << endl; // 1;
   cout << a.posudi(prva, "marko markic") << endl; // 0; knjiga je vec posudjen

   ispisiKnjige(a.trenutno_dostupne_knjige());
   // druga
   // treca
   //

   ispisiKnjige(knjiga::trenutno_dostupne_knjige());
   // cetvrta
   // druga
   // treca
   //

   cout << b.osoba_vraca_knjigu("jozo jozic") << endl; // -1
   cout << b.osoba_vraca_knjigu("ivo ivic") << endl; // 5 = 5(preseljenje iz B u A)

   knjiznica *v = knjiznica::nadji_knjiznicu("ove nema"); // NULL
   v = knjiznica::nadji_knjiznicu("knjiznica b"); // v = &b

   ispisiKnjige(a.knjige_procitane("ivo ivic"));
   // prva
   //
   ispisiKnjige(knjiznica::knjige_ostecene_svuda("ivo ivic"));
   // cetvrta
   //
   }
   ispisiKnjige(knjiznica::knjige_ostecene_svuda("ivo ivic"));
   //

   knjiga* f = knjiga::nadji_knjigu("nema je"); // NULL
   f = knjiga::nadji_knjigu("prva"); // f = &prva;

   ispisiSet(prva.osobe_koje_su_posudile_knjigu());
   // ivo ivic
   //

   return 0;
}


Zadnja promjena: vinko; 14:04 uto, 18. 5. 2010; ukupno mijenjano 2 put/a.

#86:  Autor/ica: Kardinal PostPostano: 10:41 uto, 18. 5. 2010
    —
Vezano uz autokuće, tek je sad vidljivo što je trebalo radit s gorivom... Ali gospon asistent, takve stvari se pišu u tekstu zadatka, a ne da mi to moramo sami iz mainova objavljenih na dan predaje čupat.... Evil or Very Mad

Hm, hm, i ne znam jel se to čini samo meni ili ste krivo iskomentirali output za autokuću?? Kako Vam nakon zatvaranja bloka može još uvijek postojati automobil treci? Kako Vam istovremenao automobil prvi moze biti i iznajmljen i dostupan????

#87:  Autor/ica: vinkoLokacija: PMF-MO 214 PostPostano: 10:58 uto, 18. 5. 2010
    —
Kardinal (napisa):
Vezano uz autokuće, tek je sad vidljivo što je trebalo radit s gorivom... Ali gospon asistent, takve stvari se pišu u tekstu zadatka, a ne da mi to moramo sami iz mainova objavljenih na dan predaje čupat.... Evil or Very Mad

Hm, hm, i ne znam jel se to čini samo meni ili ste krivo iskomentirali output za autokuću?? Kako Vam nakon zatvaranja bloka može još uvijek postojati automobil treci? Kako Vam istovremenao automobil prvi moze biti i iznajmljen i dostupan????


hvala na komentaru, evo, izmijenio sam. a što se goriva tiče, ja mislim da sam prije par dana napisao da shvatite kao da ima beskonačno goriva...

i dobit ćete par dana produljenje roka.

#88:  Autor/ica: Gost PostPostano: 11:11 uto, 18. 5. 2010
    —
pitanje, vezano za videoteku... šta sa ovim uništavanjem knjiga i videoteka, nije mi jasno, jel bi to nekaj s destruktorom trebalo ili što?

#89:  Autor/ica: bozidarsevoLokacija: Samobor PostPostano: 11:16 uto, 18. 5. 2010
    —
koja je to fora da ima beskonačno goriva? zar ne bi bilo nekako bolje tj. stvarnije da auto kada je iznajmljen ima neku količinu goriva? npr. da stanje goriva u trenutku iznajmljivanja bude 20...

do kada će onda bit rok predaje?

#90:  Autor/ica: vinkoLokacija: PMF-MO 214 PostPostano: 12:02 uto, 18. 5. 2010
    —
bozidarsevo (napisa):
koja je to fora da ima beskonačno goriva? zar ne bi bilo nekako bolje tj. stvarnije da auto kada je iznajmljen ima neku količinu goriva? npr. da stanje goriva u trenutku iznajmljivanja bude 20...

do kada će onda bit rok predaje?


Evo ide produljenje ruka predaje zadaće do petka do 23:59h.

#91:  Autor/ica: CobsLokacija: Geto PostPostano: 13:36 uto, 18. 5. 2010
    —
vidio sam u prijašnjim postovima da ste imali problema s referencama i static funkcijama, pa da sam ukratko objasnim ( možda ste rješili već na neki drugi način, al evo alternative )...

neki konstruktori u zadaćama imaju kao ulazni parametar referencu na nešto ( neki objekt ili bilo što ). Jedan način je da tada u strukturu koja ima takav konstruktor ubacujete pokazivač na taj objekt... konkretno u zadatku sa videotekom bi to bilo ovak nekak:

Kod:

 struct film{
    ...
    videoteka* video;
    film( videoteka& v, unsigned int cijena_vracanja ){ ... }
    ...
 };
 


poanta je da u svaki film stavite pokazivač na videoteku koja je vlasnik tog određenog filma. Način kako to funkcionira i kak se to radi je objasnio Gino u par postova iznad, pa to neću ponavljat. Postoji još jedan način ( možda i više njih, no ja ću objasnit ovaj ):

S obzirom da konstruktor
Kod:
film::film( videoteka& v, ... )


u biti prima referencu na videoteku, a ne pokazivač nekome je moglo past na pamet da u strukturu film ubaci referencu na videoteku:

Kod:

 struct film {
          ...
          videoteka& video;
          ...
          film( videoteka &v, ... );
         ...
 };


međutim ako ste to probali sada raditi konstruktor ovako:

Kod:

 film::film( videoteka& v, ... ){
           ...
           video = v;
           ...
 }
 

kompajler bi se bunio zbog nekih grešaka...
Kompajler bi se bunio iz jednostavnog razloga. Vjerojatno znate da kada definirate neku referencu odmah je morate i inicijalizirati:
npr:

Kod:

  int x;
  int& rx = x;
 


dok ovo:

Kod:

  int x;
  int& rx;
 


ne radi! jer referenci nije pridruzena varijabla.
Kakve to ima veze s gornjim primjerom?
Gotovo sve funkcije koje pišete u implementaciji kada kompajler prođe kroz njih on ih usput i promijeni, on neće promijeniti njihovu funkciju, ono što one rade, nego će samo nadodati ono što njemu treba da bi sve moglo funkcionirati. Tako će kod konstruktora nadodati inicijalizacijsku listu. Vjerojatno ste to i spomenuli negdje na vježbama:
konkretno:

Kod:

  struct STRUKTURA {
           tip_1 var_1;    // tip_1 i 2 mi mogu biti bilo koji tipovi ( int, double, pointer na nesto...)
           tip_2 var_2;
           STRUKTURA( tip_1 x, tip_2 y );
 };
 

sada bi vaša implementacija konstruktora izgledala ovako:

Kod:

   STRUKTURA( tip_1 x, tip_2 y ){ var_1 = x; var_2 = y; }       
 


no kako bi izgledala nakon što kompjler prođe preko implementacije? Kompajler bi joj nadodao inicijalizacijsku listu:
Kod:

  STRUKTURA( tip_1 x, tip_2 y ): var_1( tip_1() ), var_2( tip_2() ) {
       var_1 = x; var_2 = y;
 }


ovo nadodano je inicijalizacijska lista i u njoj se pozivaju defaultni konstruktori za sve varijable iz naše STRUKTURE. Mi sami možemo napraviti inicijalizacijsku listu pa nam konstruktor može izgledati i ovako:

Kod:
STRUKTURA( tip_1 x, tip_2 y ) :var_1( x ), var_2 (y) {}


i radit će istu stvar kao i prvi konstruktor koji sam napisao!

Sad vam može biti jasnije zašto će doći do problema ako u bilo kojoj strukturi imamo referencu na neki objekt. Mi tu referencu moramo inicijalizirati (!!!) s nekom vrjednošču i to moramo napraviti u inicijalizacijskoj listi jer će nam inače kompajler to ići raditi, međutim on joj neće pridodati nikakvu vrijednost već će pozvati defaultni konstruktor koji toj varijabli ništa ne pridodaje.( Ako sami radimo inicijalizacijsku listu onda možemo u njoj inicijalizirati varijabla kolko želimo, tj. ne trebamo sve, već po želji, ako ne inicijaliziramo sve, ostale će nam inicijalizirati kompajler ).
Konačno onaj primjer s početka bi izgledao ovako:

Kod:
struct film{
    ...
    videoteka& video;
    film( videoteka& v, unsigned int cijena_vracanja ) : video(v){ ... }
    ...
 };


i sada sve radi OK!

Što se tiče static funkcija, razlika između njih i običnih je u tome što static funkcije nemaju argumenta this, pa se u njima this pointer ne može koristiti. Tu bi jedino moglo doći do greška ( te također ključnu riječ static napisti ćemo samo u headeru (.h dokumentu ) dok ćemo je implementirati kao i svaku drugu funkciju ( više nigdje se ne koristimo static ) )

#92:  Autor/ica: Gost PostPostano: 13:49 uto, 18. 5. 2010
    —
meni recimo nisu jasna uništavanja objekata? da li to znači nešto vezano uz destruktor, što se uopće treba nalaziti u destuktoru? jel mi trebamo proći kroz listu objekata i onda uništiti onaj s kojim smo upravo radili?
npr.,nisu mi jasne dvije linije u mainu:

videoteka *v = videoteka::nadji_videoteku("ove nema"); // NULL
v = videoteka::nadji_videoteku("videoteka b"); // v = &b

zašto meni ništa ne ispisuje?jeli to ima veze s destruktorom,s obzirom da ne znam što da stavim u njega? Confused

#93:  Autor/ica: there is no spoon PostPostano: 13:52 uto, 18. 5. 2010
    —
meni output vinkovog maina ispada ovakav (drugaciji je od onoga u komentarima koda, ali po nekoj logici bi to trebalo biti tocno)

0
1
0
60
1
0
ZG222AA
ZG333AA

ZG222AA
ZG333AA
ZG444BB

0
15

ZG111AA
ZG222AA
ZG333AA
ZG444BB

ZG111AA
ZG222AA

ivo ivic

Added after 3 minutes:

Anonymous (napisa):


videoteka *v = videoteka::nadji_videoteku("ove nema"); // NULL
v = videoteka::nadji_videoteku("videoteka b"); // v = &b

zašto meni ništa ne ispisuje?jeli to ima veze s destruktorom,s obzirom da ne znam što da stavim u njega? Confused


nista ti ne ispisuje jer u ova dva retka ni nema nikakvog ispisa.


Zadnja promjena: there is no spoon; 13:50 uto, 18. 5. 2010; ukupno mijenjano 1 put.

#94:  Autor/ica: CobsLokacija: Geto PostPostano: 13:59 uto, 18. 5. 2010
    —
Anonymous (napisa):
meni recimo nisu jasna uništavanja objekata? da li to znači nešto vezano uz destruktor, što se uopće treba nalaziti u destuktoru? jel mi trebamo proći kroz listu objekata i onda uništiti onaj s kojim smo upravo radili?
npr.,nisu mi jasne dvije linije u mainu:

videoteka *v = videoteka::nadji_videoteku("ove nema"); // NULL
v = videoteka::nadji_videoteku("videoteka b"); // v = &b

zašto meni ništa ne ispisuje?jeli to ima veze s destruktorom,s obzirom da ne znam što da stavim u njega? Confused


U destruktoru bi trebao proći po static listi pointera ( ona static lista koja pripada klasi ) te iz te static liste izbacit pokazivač na samog sebe, tj. uništiš onaj pokazivač koji pokazuje na objekt koji ima isto ime kao i objekt koji je pozvao destruktor ( ovo ime može biti i bilo što drugo ( nešto po čemu je ta klasa identificirana kao jedinstvena, a to je definirano u zadatku ) )

#95:  Autor/ica: Gost PostPostano: 14:02 uto, 18. 5. 2010
    —
da, to sam napravio, samo sam se nadao da je krivo i da je to razlog zašto mi ne ispisuje ništa u one dvije linije Laughing
ok, znači bar je to dobro, hvala

#96:  Autor/ica: vinkoLokacija: PMF-MO 214 PostPostano: 14:02 uto, 18. 5. 2010
    —
there is no spoon (napisa):
meni output vinkovog maina ispada ovakav (drugaciji je od onoga u komentarima koda, ali po nekoj logici bi to trebalo biti tocno)

0
1
0
60
1
0
ZG222AA
ZG333AA

ZG222AA
ZG333AA
ZG444BB

0
15

ZG111AA
ZG222AA
ZG333AA
ZG444BB

ZG111AA
ZG222AA

ivo ivic

Added after 3 minutes:

Anonymous (napisa):


videoteka *v = videoteka::nadji_videoteku("ove nema"); // NULL
v = videoteka::nadji_videoteku("videoteka b"); // v = &b

zašto meni ništa ne ispisuje?jeli to ima veze s destruktorom,s obzirom da ne znam što da stavim u njega? Confused


nista ti ne ispisuje jer u ova dva retka ni nema nikakvog ispisa.

da, sori, radio sam izmijene na brzinu, sada cu izmijeniti onaj main.

#97:  Autor/ica: Gost PostPostano: 14:07 uto, 18. 5. 2010
    —
a sad sam skužio odgovor Very Happy aha, znači dobro je, hvala vam Very Happy

#98:  Autor/ica: Gost PostPostano: 14:35 uto, 18. 5. 2010
    —
ako može još samo jedno pitanje da si to s uništavanjem definitivno razjasnim,netko je već to bio pitao ode na forumu( automobil je bio u pitanju),ali je taj netko i shvatio,pa ako može objašnjenje za nas(mene) koji još uvijek neshvaćamo ...u nekim f-jama je uvjet da je objekt još živ,da li mi trebamo provjeravat jeli objekt još živ? nevazno,automobil, film, knjiga...
ili to jednostavno zanemarimo

#99:  Autor/ica: CobsLokacija: Geto PostPostano: 14:59 uto, 18. 5. 2010
    —
Anonymous (napisa):
ako može još samo jedno pitanje da si to s uništavanjem definitivno razjasnim,netko je već to bio pitao ode na forumu( automobil je bio u pitanju),ali je taj netko i shvatio,pa ako može objašnjenje za nas(mene) koji još uvijek neshvaćamo ...u nekim f-jama je uvjet da je objekt još živ,da li mi trebamo provjeravat jeli objekt još živ? nevazno,automobil, film, knjiga...
ili to jednostavno zanemarimo


Ovaj uvjet da se funkcija izvršava samo ako je objekt još "živ" znači da moraš dobro napisati destruktor, tj. napisati ga tako da izbriše onaj pokazivač na objekt iz static liste koji je pozvao destruktor. Za tvoj program "živi" objekti su samo oni koji postoje u static listi, funkcije piši normalno bez nekih uvjeta dal je objekt "živ" ili nije.

#100:  Autor/ica: Gost PostPostano: 18:51 uto, 18. 5. 2010
    —
U main-u za videoteku imamo viticaste zagrade koje nam sredinu odjeljuju. Jel mi netko moze rec sta bi nan to tribalo oznacavat??

I druga stvar, meni vrati

ZG222AA
ZG333AA
ZG444BB

ivo ivic: ZG111AA

ZG222AA
ZG333AA
ZG444BB
umjesto

// ZG111AA
// ZG222AA
// ZG333AA
// ZG444BB ( to je za ispisiAutomobile(automobil::trenutno_dostupni_automobili())Wink

i nije mi jasno kako je automobil ZG111AA dostupan? Jel bi se u ovoj fiji trebalo provjeravat jel automobil iznajmljen ( u ovom slucaju je iznajmljen pa mi nije jasno zasto se ispisuje kao dostupan)

#101:  Autor/ica: TindarielLokacija: Zagreb PostPostano: 19:18 uto, 18. 5. 2010
    —
Anonymous (napisa):
U main-u za videoteku imamo viticaste zagrade koje nam sredinu odjeljuju. Jel mi netko moze rec sta bi nan to tribalo oznacavat??


Ako sam dobro shvatila neki Ginov prijašnji post, to bi trebalo značit da se pozivaju destruktori onih elemenata koji su nastali u tom bloku na kraju tog bloka, a ne tek na kraju programa.

A onaj ZG111AA ti je vraćen (pogledaj u kodu, piše da ivo ivic, ili tak netko, vraća automobil tamo gdje se ispiše 15) Smile

#102:  Autor/ica: Gost PostPostano: 19:39 uto, 18. 5. 2010
    —
Kad su mi zagrade stavljene ispisuje mi do dijela di je kraj tih zagrada, i onda javi segmentation fault, kad nema zagrada sve mi super javi ( naravno uz drugaciji ispis ali ne javlja segmentation fault) ????

Moguci razlozi??

#103:  Autor/ica: GinoLokacija: Pula PostPostano: 19:53 uto, 18. 5. 2010
    —
los destruktor, mos ga stavit tu Question

#104:  Autor/ica: Gost PostPostano: 22:02 uto, 18. 5. 2010
    —
Evo jedno pitanje:

u programu imam jednu globalnu varijablu koja se koristi u strukturama. Kada cijeli program imam u jednom fajlu, kompajlira se bez problema.

Ali, kada rastavim program na *.h i na *.cpp kompajler se buni.
Ako stavim globalnu varijablu u *.h datoteku, kompajler javlja grešku. ("ime_glob_var undeclared in this scope" ili tako nekako)
Ako stavim globalnu varijablu u *.cpp datoteku, opet javlja grešku.

Kamo onda staviti globalnu varijablu?

#105:  Autor/ica: lucika PostPostano: 22:58 uto, 18. 5. 2010
    —
kad pokrenem program kompajler javlja: "Segmentation fault". kaj to znači??? Sad

#106:  Autor/ica: CobsLokacija: Geto PostPostano: 13:46 sri, 19. 5. 2010
    —
Anonymous (napisa):
Evo jedno pitanje:

u programu imam jednu globalnu varijablu koja se koristi u strukturama. Kada cijeli program imam u jednom fajlu, kompajlira se bez problema.

Ali, kada rastavim program na *.h i na *.cpp kompajler se buni.
Ako stavim globalnu varijablu u *.h datoteku, kompajler javlja grešku. ("ime_glob_var undeclared in this scope" ili tako nekako)
Ako stavim globalnu varijablu u *.cpp datoteku, opet javlja grešku.

Kamo onda staviti globalnu varijablu?


Stavi je u *.h datoteku, trebalo bi sve normalno radit... meni radi kak god je definiram u *.h datoteci.

Takva greška bi eventualno mogla doći ak si tu globalnu varijablu stavio u neku klasu.

#107:  Autor/ica: konjinaLokacija: po livadama i šumama PostPostano: 22:29 sri, 19. 5. 2010
    —
mogu li destruktor ovako implementirat.... stavim varijablu postoji tipa bool....i u destruktoru stavim da popstoji = 0.... i svodi se na dve tri if-a ukupno u zadaći.....

imam knjižnicu....pa sam to stavio kod knjige...a kod knjižnice prazan destruktor...jer se nigdje ne traži uvjet dali postoji knjižnica...tak da...


jel to oke?

#108:  Autor/ica: JANKRILokacija: Zagreb PostPostano: 22:37 sri, 19. 5. 2010
    —
ovo za knjigu je ok, za knjižnicu moraš paziti da ju makneš iz popisa svih knjižnica, što opet možeš s jednom bool varijablom, ako baš želiš tako

#109:  Autor/ica: RazLokacija: Tamo gdje ribe jedu avanturiste... PostPostano: 2:10 čet, 20. 5. 2010
    —
Jel mi moze netko objasniti cemu sluze zagrade unutar main-a od knjiznice?
Jer kad se pozove funkcija ispisiKnjige(knjiznica::knjige_ostecene_svuda("ivo ivic")) prvi puta unutar zagrade normalno mi to ispise,al cim izadje iz te zagrade javlja mi segmentation fault? Help?

#110:  Autor/ica: CobsLokacija: Geto PostPostano: 15:03 čet, 20. 5. 2010
    —
evo sad općenito primjera konstruktora i destruktora za bilo koje klase koje trebate implementirati:

Svaka klasa ima static listu pokazivača na tu klasu:

npr:
Kod:

   struct KLASA {
    ...
    static list< KLASA* > sve_KLASE;
 };
 


kada god kreirate u main - u novu KLASU trebali bi provjerit dal postoji već neka klasa u programu koja se isto zove ( ili po ćemu ih već raspoznajete ) jer ne bi smjeli imati dvije klase istog imena.

static lista pokazivača služi kao popis svih klasa koje se koriste u programu, pa bi konstruktor otprilike trebao izgledati ovako:

Kod:

  KLASA::KLASA( ulazni parametri ){
            ime = ulazno_ime;
            par_1 = prvi_ulazni_parametar;
            par_2 = drugi_ulazni_parametar;
            // itd...
           
           // sada treba provjeriti dal vec postoji u programu neka klasa koja se isto zove kao i ova

          iterator za listu sve_KLASE;

          for( odi sa iteratorom po listi sve_KLASE od pocetka do kraja ){
                if( ako je ime neke KLASE iz liste sve_KLASE == ulazno_ime ) break;
          }

          if( iterator == kraj liste sve_KLASE ){
             ubaci u listu pokazivač na ovu klasu ( this pointer )
          }
          // ako smo dosli do kraja liste sa iteratorom to znači da još nema takve klase pa je ubacujemo među "žive" klase
 }
 


i destruktor:

Kod:
KLASA::~KLASA(){

           for( odi sa iteratorom po listi sve_KLASE od pocetka do kraja ){
              if( ako je ime neke KLASE iz liste sve_KLASE == ime ){ izbaci taj pokazivač iz liste }
          }

 }


to je ono osnovno što bi konstruktori i destruktori trebali raditi!
Na taj način smo mi odredili da u programu ne postoje dvije klase istog imena i izbacili iz programa klase koje više ne koristimo.

primjer main -a:

Kod:

        int main(){

            KLASA A( "PRVA" );     // u static listu sve_KLASE ubacuje se pokazivač na KLASU A
            KLASA B( "DRUGA" ); // u static listu sve_KLASE ubacuje se pokazivač na KLASU B
            KLASA C( "PRVA" ); // u static listu sve_KLASE NE ubacuje se pokazivač na KLASU C jer već u programu postoji klasa istog imena

            // na taj način mi smo odlučili da klasa C nije "živa", dok klase B i A jesu

          // naravno mi sada možemo raditi u main - u s klasom C međutim pitanje dal će sve funkcije funkcionirati na pravi način jer klasa C nije dio našeg programa
         // zašto nam treba destruktor?
         // u main možemo ubaciti blok naredbi!!!

        {
            KLASA D( "KLASA S NAJDUZIM IMENOM" ); // D se ubacuje u listu sve_KLASE
           A.ispisi_ime_klase_s_najduljim_imenom(); // ispisuje se ime klase D

         } // na kraju bloka poziva se destruktor svih varijabli ( i klasa ) napravljenih unutar bloka, tj. moramo KLASU D izbrisati iz liste sve_KLASE
         
         A.ispisi_ime_klase_s_najduljim_imenom();  // sada mora ispisati ime KLASE B ( D više nije "živa" !!! )
             

       
            return 0;

       }
 


eto nadam se da se ovo neće tretirati kao rješenje zadaće te da neće biti pobrisano!!! Na taj način bi se trebalo gledati dal su klase "žive" ili ne, a bez neki pomoćnih varijabla, makar se može i s tim

#111:  Autor/ica: konjinaLokacija: po livadama i šumama PostPostano: 16:35 čet, 20. 5. 2010
    —
što radi funkcija knjige_ostecene_svuda.... znači piše ovako....
vraća knjige koje je određena osoba ikad oštetila u svim knjižnicama ( a da još postoje), poredane po imenu knjige....



a da još postoje se odnosi na knjige i knjižnice...ili sam na knjižnice?....


slično i za knjige_pročitane

#112:  Autor/ica: i v a n č i c a PostPostano: 17:58 čet, 20. 5. 2010
    —
dal je mozda neko nasao usb u praktikumu 5? jucer izgubljen, plavi sa rozom spagicom Sad

#113:  Autor/ica: RazLokacija: Tamo gdje ribe jedu avanturiste... PostPostano: 20:06 čet, 20. 5. 2010
    —
konjina (napisa):
što radi funkcija knjige_ostecene_svuda.... znači piše ovako....
vraća knjige koje je određena osoba ikad oštetila u svim knjižnicama ( a da još postoje), poredane po imenu knjige....



a da još postoje se odnosi na knjige i knjižnice...ili sam na knjižnice?....


slično i za knjige_pročitane


Ne, to se odnosi na knjige koje još postoje!

Nisam ni ja bio siguran, pa pitao asistenta mailom Wink

#114:  Autor/ica: markotronLokacija: Umag PostPostano: 20:19 čet, 20. 5. 2010
    —
Main "videoteka"

Negdje pri dnu piše f.nesto, a treba pisati f→nesto jer je f pokazivac.

Jel tako?

#115:  Autor/ica: Gost PostPostano: 20:20 čet, 20. 5. 2010
    —
kaže u zadatku da osoba ne može istovremeno posuditi 2 knjige u 2 knjižnice Question Question jel to znači da ne može posuditi ni 2 knjige istovremeno u jednoj knjižnici? ali to nema smisla, onda bi trebali gledati recimo za f-ju najpoderivanija stranica u kojoj knjizi??

#116:  Autor/ica: RazLokacija: Tamo gdje ribe jedu avanturiste... PostPostano: 20:37 čet, 20. 5. 2010
    —
Ne, kad posudi, ne moze posudivati ponovo sve dok je ne vrati ili dok eventualno knjiga ne bude unistena tj. pozove se ~knjiga().

#117:  Autor/ica: Gost PostPostano: 21:39 čet, 20. 5. 2010
    —
ja imam pitanje vezano uz sortiranje objekata, jel se to može raditi klasičnim sortiranjem po npr. imenu i onda kao zamijenjujemo objekte, to mi je malo čudno? i da li se u setu elementi(u ovom slučaju objekti) automatski poredaju po veličini?? Laughing

#118:  Autor/ica: tmaruscaLokacija: 1/039 PostPostano: 21:47 čet, 20. 5. 2010
    —
dobronamjerna napomena:

definicije operatora idu unutar structova u .h datoteci.

ako je slucajno netko koristio a imao problema.
ja jesam Very Happy

#119:  Autor/ica: GinoLokacija: Pula PostPostano: 21:48 čet, 20. 5. 2010
    —
Anonymous (napisa):
ja imam pitanje vezano uz sortiranje objekata, jel se to može raditi klasičnim sortiranjem po npr. imenu i onda kao zamijenjujemo objekte
da to bi se tako trebalo...
Anonymous (napisa):
to mi je malo čudno?
sta je tu cudno uvijek sortiras neke objekte na temelju neke funkcije (nekog pravila) ovdje ta funkcija vrati ime objekta (i ne treba pisat funkciju)
Anonymous (napisa):
i da li se u setu elementi(u ovom slučaju objekti) automatski poredaju po veličini??
normalno da ne, za detalje prodi po 9. vjezbama

#120:  Autor/ica: tmaruscaLokacija: 1/039 PostPostano: 21:49 čet, 20. 5. 2010
    —
@gost: upravo zato sam ja definirao operator<

onda kad ubacujes knjige u set slazu se po kriteriju kojeg sama odaberes (ime)

#121:  Autor/ica: GinoLokacija: Pula PostPostano: 22:01 čet, 20. 5. 2010
    —
tmarusca (napisa):
onda kad ubacujes knjige u set slazu se po kriteriju kojeg sama odaberes (ime)

nije li u tom slucaju bilo jednostavnije koristit gotov sort i samo napisat funkciju za usporedivanje Smile

#122:  Autor/ica: tmaruscaLokacija: 1/039 PostPostano: 22:14 čet, 20. 5. 2010
    —
meni je ovo puno elegantnije rjesenje nego sortirati vektore/liste... je da mozda nije najefikasnije ali je ljepse.

#123:  Autor/ica: Kardinal PostPostano: 1:16 pet, 21. 5. 2010
    —
Nije trebalo sortirat vektore/liste, moglo se fino potrpat imena u set i koristit funkciju nadji_sto-li-vec pri stavljanju u vektor... zadaća se mogla elegantno riješit bez ikakvih dodatnih funkcija Wink

#124:  Autor/ica: tmaruscaLokacija: 1/039 PostPostano: 7:34 pet, 21. 5. 2010
    —
ma to su sve samo finese sad... Very Happy

#125:  Autor/ica: lajkaLokacija: Zagreb PostPostano: 16:24 pet, 21. 5. 2010
    —
Citat:

f = film::najposudjivaniji_film(); // f = &prvi;

ispisiSet(f.osobe_koje_su_posudile_film());


meni ovo ispisivanje radi ako stavim f→osobe_koje_su_posudile_film, jer je f tipa film*

da li vama ostalima radi bez te promjene?

#126:  Autor/ica: i v a n č i c a PostPostano: 16:43 pet, 21. 5. 2010
    —
dal je moguce voziti automobil ako nije iznajmljen?

Added after 16 minutes:

Citat:
cout << "Danijel vraća s u B: " << B→osoba_vraca_automobil("Danijel") << endl;

automobil *najpos = automobil::najposudjivaniji_automobil();
cout << "Najposuđivaniji automobil: " << najpos→registracija << endl;

s→dolij_goriva(40);
s→vozi(40);

najpos = automobil::najposudjivaniji_automobil();
cout << "Najposuđivaniji automobil: " << najpos→registracija << endl;


zbog ovog s→dolij_goriva(40);
s→vozi(40); mislim da ispis nije dobar, dal mozemo vozit auto koji nije posudjen?

#127:  Autor/ica: Gost PostPostano: 21:12 pet, 21. 5. 2010
    —
u fiji " Osobe_koje_su _iznajmile_automobil() " jel se odnosi samo na osobe koje su iznajmile taj automobili ili na sve osobe koje su IKADA iznajmile BILO KOJI automobil?

#128:  Autor/ica: bbroj PostPostano: 22:04 ned, 23. 5. 2010
    —
pozdrav,imam jedno(vjerojatno glupo) pitanje...naime,ja nisam vidio koliko sam bodova dobio iz 3.zadace i u medjuvremenu je objavljena 4. i sad kad se ulogiram u zadace nema mi broja bodova iz prethodnih...pa ako mi netko moze reci gdje to mogu vidjeti???

#129:  Autor/ica: i v a n č i c a PostPostano: 8:43 pon, 24. 5. 2010
    —
rezultati 3. zadace jos nisu stigli...

#130:  Autor/ica: slash PostPostano: 23:21 pon, 24. 5. 2010
    —
hahaha ma nije ti glupo pitanje bbroj, ja san to isto tia pitat Laughing

#131:  Autor/ica: tidus PostPostano: 20:19 čet, 27. 5. 2010
    —
i v a n č i c a (napisa):
rezultati 3. zadace jos nisu stigli...


Trebali su jutros doć. Kada će?

#132:  Autor/ica: lucika PostPostano: 15:12 sri, 2. 6. 2010
    —
evo stigli rezultati i 3. i 4. zadaće Smile
kakvi su vam rezultati 3.? ja imam 0, najrađe bi se ubila... Crying or Very sad kao "ruši mi se program". a tolko vremena i truda uložila u to... šmrc! Sad

#133:  Autor/ica: MilojkoLokacija: Hilbertov hotel PostPostano: 15:32 sri, 2. 6. 2010
    —
5. main mi ne radi

#134:  Autor/ica: Vip PostPostano: 15:40 sri, 2. 6. 2010
    —
Jel nula pozitivan broj???

#135:  Autor/ica: MilojkoLokacija: Hilbertov hotel PostPostano: 15:46 sri, 2. 6. 2010
    —
nije, ak se ne varam. nula je nenegativan paran broj

#136:  Autor/ica: CrniVG PostPostano: 16:48 sri, 2. 6. 2010
    —
Imao sam videoteku....

Main 5 (napisa):
void filmOK(film* x, film* y) {
if (x==y) cout << "OK" << endl;
else cout << "nije OK" << endl;
}

int main() {
videoteka a("videoteka a", 2, 7);
film f1(a, "prvi", 10);
{
film f2(a, "drugi", 10);
film f3(a, "treci", 10);

f1.posudi("o1");
f1.posudi("o2");
f2.posudi("o2");
f1.vrati(a);
f1.posudi("o1");
f2.vrati(a);
f2.posudi("o1");
f2.vrati(a);
filmOK(&f2, film::najposudjivaniji_film());
f1.posudi("o2"); f1.vrati(a);
filmOK(&f2, film::najposudjivaniji_film());
}
filmOK(&f1, film::najposudjivaniji_film());

Ispis (napisa):
OK
OK
OK

Tu mi nije jasno, ako u drugom pozivu f-je filmOK, i f1 i f2 imaju isti broj posuđivanja, a film f1 se zove "prvi" i f2 se zove "drugi", zar ne bih trebao vratit f1, koji ima 'manje' ime ?
Ustvari, šta uopće znači 'manje ime' ? Ja sam brojio slova... Embarassed
Tekst zadatka (napisa):
static film* najposudjivaniji_film(); // vraća film koji je najviše puta
bio posuñen (a da je još živ), a ako je više takvih, vraća onog s najmanjim
imenom

#137:  Autor/ica: markotronLokacija: Umag PostPostano: 10:39 čet, 3. 6. 2010
    —
ne manje po broju slova.. manje po abecedi Smile

#138:  Autor/ica: lucika PostPostano: 15:38 čet, 3. 6. 2010
    —
što bi trebalo značiti: "Program se sruši prilikom izvođenja!" Confused
pogledala sam one correct.?.out i moj program ispisuje više-manje sve kak i treba samo što mi na kraju uvijek ispiše i onaj "Segmentation fault"...jel to zbog toga? Sad

#139:  Autor/ica: MilojkoLokacija: Hilbertov hotel PostPostano: 16:01 čet, 3. 6. 2010
    —
pa ono, segmentation fault obično znači da "brljaš" po nečem počem neb baš smjela brljat, pa ti zato kaže da se krši

#140:  Autor/ica: CobsLokacija: Geto PostPostano: 20:53 čet, 3. 6. 2010
    —
lucika (napisa):
što bi trebalo značiti: "Program se sruši prilikom izvođenja!" Confused
pogledala sam one correct.?.out i moj program ispisuje više-manje sve kak i treba samo što mi na kraju uvijek ispiše i onaj "Segmentation fault"...jel to zbog toga? Sad


To znači da si negdje krivo baratala s memorijom ( to je česta greška pri radu s poljima ( tj. pointerima ( tu spadaju i iteratori ) ) ).

Npr. negdje si u nekoj petlji "šetala" po polju i u nekoj varijanti ti je možda program izgeneriro: polje[ -1 ] što se ne smije.

Ili vjerojatnije za ovu zadaću reko bih da si šetala po nekom STL spremniku i koristila funkcije tipa erase i ili insert, a to radi neke promjene s iteratorima pa ti tim promjenjenim iteratorima barataš, a ne bi smjela ( pod promjenjenim mislim možda i uništenim )... i tu se program skrši.

Predložio bih ti da ponovno pokreneš main ( zakomentiraš cijeli kod main funkcije i zatim red po red odkomentiraš i tak ga kompajliraš pa ćeš saznat točno u kojoj funkciji ( redu ) ti je došlo do problema ).


Zadnja promjena: Cobs; 12:48 pet, 4. 6. 2010; ukupno mijenjano 1 put.

#141:  Autor/ica: lucika PostPostano: 0:59 pet, 4. 6. 2010
    —
Cobs (napisa):
i destruktor:

Kod:
KLASA::~KLASA(){

           for( odi sa iteratorom po listi sve_KLASE od pocetka do kraja ){
              if( ako je ime neke KLASE iz liste sve_KLASE == ime ){ izbaci taj pokazivač iz liste }
          }

 }


to je ono osnovno što bi konstruktori i destruktori trebali raditi!
Na taj način smo mi odredili da u programu ne postoje dvije klase istog imena i izbacili iz programa klase koje više ne koristimo.



koristila sam fju erase za izbacivanje tog pokazivača iz liste...kaj da onda stavim umjesto tog? Confused

#142:  Autor/ica: MilojkoLokacija: Hilbertov hotel PostPostano: 1:08 pet, 4. 6. 2010
    —
si zihić dati baš tu baca grešku? lupi rpu cout-ova prije i poslije svake kritične naredbe da vidiš di točno zapinje. ak nitak ne uspiješ naći, pošalji mi u pm-u implementaciju u attachmentu i sadržaj .h datoteke mi skopiraj i zaljepi pać pogledat sutra, tj. danas navečer, il najkasnije sutra

#143:  Autor/ica: CobsLokacija: Geto PostPostano: 10:18 pet, 4. 6. 2010
    —
velika vjerorjatnost je da nisi iza funkcije erase stavila naredbu break;
kojom iskačeš van iz petlje nakon što si pobrisala to što si trebala pobrisat
( ti nastavljaš povećavat iterator kojeg si pobrisala pa tu dolazi do greške )

#144:  Autor/ica: lucika PostPostano: 11:20 pet, 4. 6. 2010
    —
skužila!!!
umjesto erase(i) treba bit erase(i++) Embarassed
fala ljudovi! Weeeeeee!!!!!!!!!!!

#145:  Autor/ica: CobsLokacija: Geto PostPostano: 12:12 pet, 4. 6. 2010
    —
lucika (napisa):
skužila!!!
umjesto erase(i) treba bit erase(i++) Embarassed
fala ljudovi! Weeeeeee!!!!!!!!!!!


i++ samo po sebi nije baš ok! puno bolja varijanta ti je on koju sam ti napiso u postu iznad ( naravno za ovaj slučaj )!

Važno je znati da taj erase( i++ ) nikad nejde sam već uvijek uz još neki dodatak ( ispravak tog iteratora i ). Velike su ti šanse da neće radit niti sa tim erase( i++ ).

Recimo da imaš samo 1 element u slijednom STL spremniku. I recimo da u jednom trenutku u kodu dođe do poziva te tvoje funkcije koja koristi funkciju erase( i++ ). Što će se dogoditi?

Funkcija će uništiti ono na što pokazuje iterator i, a i će se povećati za 1 ( tj. "pomaknut će se za jedno mjesto u desno" ). Zatim se ta for petlja nastavlja izvršavati, a iterator i koji ti je sad na poziciji: kraj spremnika ( jer je u spremniku bio sam jedan element ) se ponovno povećava za 1! Ali kam sad ide? ( kad nema daljnje pozicije od kraja liste ). E tu često dolazi do problema i u biti ne znam kak ti je ovo prošlo!

evo primjera takvog pogrešnog brisanja:
Kod:
#include <iostream>
#include <vector>
 using namespace std;
  int main(){   
   vector<int> V( 1, 1 );   
   for( vector<int>::iterator it = V.begin(); it != V.end(); it++ )
       V.erase( it++ );   
   cout << "Izbacio sam malo prije!" << endl;
   cin.get();
   return 0;
  }


program će izbacit prije nego se bilo kaj ispiše!

Naravno ovakvo brisanje vjerojatno nikad nećete koristit, ali to je samo bio primjer do kakvih situacija može doć u slučaju takvog brisanja!

#146:  Autor/ica: kkarlo PostPostano: 21:12 uto, 8. 5. 2012
    —
Pitanje...
Zašto se u zadatku (računalo, laptop, notebook) traži u funkciji spojiRacunala da se vraća static? I da li to spajanje znači da to novo nastalo računalo ulazi automatski u listu te da nestaju ta dva koja smo spojili? Ili od ta dva nastaje jedno bolje, i drugo lošije?
Confused


Dogodio se bug u tekstu zadatka kod funkcije najbrzeRacunalo, u zagradi bi trebalo pisat s obzirom na sva racunala a ne s obzirom na sva vozila... nije da smeta, ali tek tak da primjetim...



Forum@DeGiorgi -> Računarski praktikum 1


output generated using printer-friendly topic mod. Vremenska zona: GMT + 01:00.

Stranica 1 / 1.

Powered by phpBB © 2001,2002 phpBB Group
Theme created by Vjacheslav Trushkin