Prethodna tema :: Sljedeća tema |
Autor/ica |
Poruka |
iuppiter Forumaš(ica)


Pridružen/a: 03. 01. 2006. (12:15:51) Postovi: (6A)16
Spol: 
Lokacija: Nigdjezemska
|
|
[Vrh] |
|
pecina Forumaš(ica)


Pridružen/a: 19. 01. 2005. (14:15:23) Postovi: (157)16
Spol: 
Lokacija: Happily traveling through space since 1986!
|
|
[Vrh] |
|
vinko Forumaš(ica)

Pridružen/a: 26. 08. 2006. (23:08:00) Postovi: (1A8)16
Spol: 
Lokacija: PMF-MO 214
|
Postano: 11:26 ned, 27. 5. 2007 Naslov: |
|
|
[quote="Anonymous"]Je li mi može netko objsanit zašto je rečeno da bi izbrisani artikl trebao biti različit od kraja skladista, u main(koji nam je dan kao primjer) ispada da bi trebao biti jednak (treba ispisati "Nema racunala u skladistu A")?
Hvala[/quote]
U slučaju naredbi nađi, početak, ili artikla::next ne smije se vratit artikal sa količinom nula (nego kraj skladišta ili sljedeći artikl). Međutim, moguće je zapamtiti neki artikl, npr:
[code:1]SKLADISTE::ARTIKL a=s.dodaj("Olovka", 10);
a.kolicina()=0;[/code:1]
Takva varijabla a je sada različita od s.kraj(). To sam vam bio rekao da ovakav slučaj neće biti u primjerima (da ga uspoređujem sa krajem skladišta, nekim drugim artiklom kojeg sam na ovaj način izbacio iz skladišta, ili da tražim a.next).
Dakako, nakon ove naredbe može doći:
[code:1]SKLADISTE::ARTIKL b=s.nadji("Olovka");
[/code:1]
Sada b treba biti (možda je nelogično) jednako s.kraj(), (dakle različito od a).
Ali mislim da je tako jednostavnije za iskodirati.
Anonymous (napisa): | Je li mi može netko objsanit zašto je rečeno da bi izbrisani artikl trebao biti različit od kraja skladista, u main(koji nam je dan kao primjer) ispada da bi trebao biti jednak (treba ispisati "Nema racunala u skladistu A")?
Hvala |
U slučaju naredbi nađi, početak, ili artikla::next ne smije se vratit artikal sa količinom nula (nego kraj skladišta ili sljedeći artikl). Međutim, moguće je zapamtiti neki artikl, npr:
Kod: | SKLADISTE::ARTIKL a=s.dodaj("Olovka", 10);
a.kolicina()=0; |
Takva varijabla a je sada različita od s.kraj(). To sam vam bio rekao da ovakav slučaj neće biti u primjerima (da ga uspoređujem sa krajem skladišta, nekim drugim artiklom kojeg sam na ovaj način izbacio iz skladišta, ili da tražim a.next).
Dakako, nakon ove naredbe može doći:
Kod: | SKLADISTE::ARTIKL b=s.nadji("Olovka");
|
Sada b treba biti (možda je nelogično) jednako s.kraj(), (dakle različito od a).
Ali mislim da je tako jednostavnije za iskodirati.
|
|
[Vrh] |
|
iuppiter Forumaš(ica)


Pridružen/a: 03. 01. 2006. (12:15:51) Postovi: (6A)16
Spol: 
Lokacija: Nigdjezemska
|
Postano: 12:19 ned, 27. 5. 2007 Naslov: |
|
|
jos nesto, da se nadovezem na proslo pitanje:
recimo da dodam artikl sa sifrom koja postoji u drugom skladistu, ali taj artikl ne postoju u prvom, tj u ono koje dodajem.
stvorim novi artikl u koji prekopiram sifru i kolicinu koje su parametri funkcije, a što s imenom, tj kako saznati ime od tog artikla iz drugog skladišta.
jos nesto, da se nadovezem na proslo pitanje:
recimo da dodam artikl sa sifrom koja postoji u drugom skladistu, ali taj artikl ne postoju u prvom, tj u ono koje dodajem.
stvorim novi artikl u koji prekopiram sifru i kolicinu koje su parametri funkcije, a što s imenom, tj kako saznati ime od tog artikla iz drugog skladišta.
_________________ Stultorum plena sunt omnia.
/Ciceron/
|
|
[Vrh] |
|
vinko Forumaš(ica)

Pridružen/a: 26. 08. 2006. (23:08:00) Postovi: (1A8)16
Spol: 
Lokacija: PMF-MO 214
|
Postano: 13:07 ned, 27. 5. 2007 Naslov: |
|
|
[quote="iuppiter"]jos nesto, da se nadovezem na proslo pitanje:
recimo da dodam artikl sa sifrom koja postoji u drugom skladistu, ali taj artikl ne postoju u prvom, tj u ono koje dodajem.
stvorim novi artikl u koji prekopiram sifru i kolicinu koje su parametri funkcije, a što s imenom, tj kako saznati ime od tog artikla iz drugog skladišta.[/quote]To bi mogli npr. naredbom SKLADISTE::nadji_ime
iuppiter (napisa): | jos nesto, da se nadovezem na proslo pitanje:
recimo da dodam artikl sa sifrom koja postoji u drugom skladistu, ali taj artikl ne postoju u prvom, tj u ono koje dodajem.
stvorim novi artikl u koji prekopiram sifru i kolicinu koje su parametri funkcije, a što s imenom, tj kako saznati ime od tog artikla iz drugog skladišta. | To bi mogli npr. naredbom SKLADISTE::nadji_ime
|
|
[Vrh] |
|
iuppiter Forumaš(ica)


Pridružen/a: 03. 01. 2006. (12:15:51) Postovi: (6A)16
Spol: 
Lokacija: Nigdjezemska
|
Postano: 13:35 ned, 27. 5. 2007 Naslov: |
|
|
ako imam static listu artikala u strukturi SKLADISTE u kojoj cuvam sve artikle ikad dodane, to znaci da vrijedi za sva skladista pa setanjem po njoj uvijek mogu po sifri naci ime i obrnuto i imam rijesden problem od prije, imam li pravo ili mi to vrijedi samo za ono skladiste za koje se funkcija dodaj poziva?
i druga stvar, nakon sto nesto dodam ili oduzmem, moram paziti na sortiranost po sifri u skladistu.
napisala sam ovakvu funkciju sortiraj:
void SKLADISTE::sortiraj(void)
{
vector<artikl>::iterator vi;
vector<artikl>::iterator di;
for(vi=a.begin();vi!=a.end();vi++)
for(di=vi+1;vi!=a.end();di++)
{
if(di->code < vi->code)
{
artikl temp;
temp.code=(di->code);temp.name=(di->name);temp.koliko=(di->koliko);
(di->code)=(vi->code);(di->name)=(vi->name);(di->koliko)=(vi->koliko);
(vi->code)=temp.code;(vi->name)=temp.name;(vi->koliko)=(temp.koliko);
}
}
}
Kompajlira mi se normalno, ali prilikom pokretanja programa mi se javi onaj prozorčić blabla has encountered a problem and needs to close...blabla
Kaj ne valja?
ako imam static listu artikala u strukturi SKLADISTE u kojoj cuvam sve artikle ikad dodane, to znaci da vrijedi za sva skladista pa setanjem po njoj uvijek mogu po sifri naci ime i obrnuto i imam rijesden problem od prije, imam li pravo ili mi to vrijedi samo za ono skladiste za koje se funkcija dodaj poziva?
i druga stvar, nakon sto nesto dodam ili oduzmem, moram paziti na sortiranost po sifri u skladistu.
napisala sam ovakvu funkciju sortiraj:
void SKLADISTE::sortiraj(void)
{
vector<artikl>::iterator vi;
vector<artikl>::iterator di;
for(vi=a.begin();vi!=a.end();vi++)
for(di=vi+1;vi!=a.end();di++)
{
if(di->code < vi->code)
{
artikl temp;
temp.code=(di->code);temp.name=(di->name);temp.koliko=(di->koliko);
(di->code)=(vi->code);(di->name)=(vi->name);(di->koliko)=(vi->koliko);
(vi->code)=temp.code;(vi->name)=temp.name;(vi->koliko)=(temp.koliko);
}
}
}
Kompajlira mi se normalno, ali prilikom pokretanja programa mi se javi onaj prozorčić blabla has encountered a problem and needs to close...blabla
Kaj ne valja?
_________________ Stultorum plena sunt omnia.
/Ciceron/
|
|
[Vrh] |
|
vinko Forumaš(ica)

Pridružen/a: 26. 08. 2006. (23:08:00) Postovi: (1A8)16
Spol: 
Lokacija: PMF-MO 214
|
Postano: 13:46 ned, 27. 5. 2007 Naslov: |
|
|
[quote="iuppiter"]ako imam static listu artikala u strukturi SKLADISTE u kojoj cuvam sve artikle ikad dodane, to znaci da vrijedi za sva skladista pa setanjem po njoj uvijek mogu po sifri naci ime i obrnuto i imam rijesden problem od prije, imam li pravo ili mi to vrijedi samo za ono skladiste za koje se funkcija dodaj poziva?
[/quote]
Da. Cuvate imena i sifre. To treba biti staticko.
[quote="iuppiter"]
for(vi=a.begin();vi!=a.end();vi++)
for(di=vi+1;vi!=a.end();di++)
[/quote]
Imate u uvjetu vi!=a.end, a trebalo bi biti [b]di[/b]!=a.end
Al mi se taj pristup bas i ne svidja. Sumnjam da ce raditi dobro u svim slucajevima.
Ako npr. imam artikl art (koji ima šifru npr. 5), on bi trebao imati referencu na svoju količinu. Ako u skladište ubacim artikl (kojeg nije bilo prije u tom skladištu) sa manjom šifrom, npr. 4. Vjerojatno će art.kolicina() sada referencirati na količinu artikla sa šifrom 4, što nikako ne bi bilo dobro.
iuppiter (napisa): | ako imam static listu artikala u strukturi SKLADISTE u kojoj cuvam sve artikle ikad dodane, to znaci da vrijedi za sva skladista pa setanjem po njoj uvijek mogu po sifri naci ime i obrnuto i imam rijesden problem od prije, imam li pravo ili mi to vrijedi samo za ono skladiste za koje se funkcija dodaj poziva?
|
Da. Cuvate imena i sifre. To treba biti staticko.
iuppiter (napisa): |
for(vi=a.begin();vi!=a.end();vi++)
for(di=vi+1;vi!=a.end();di++)
|
Imate u uvjetu vi!=a.end, a trebalo bi biti di!=a.end
Al mi se taj pristup bas i ne svidja. Sumnjam da ce raditi dobro u svim slucajevima.
Ako npr. imam artikl art (koji ima šifru npr. 5), on bi trebao imati referencu na svoju količinu. Ako u skladište ubacim artikl (kojeg nije bilo prije u tom skladištu) sa manjom šifrom, npr. 4. Vjerojatno će art.kolicina() sada referencirati na količinu artikla sa šifrom 4, što nikako ne bi bilo dobro.
|
|
[Vrh] |
|
iuppiter Forumaš(ica)


Pridružen/a: 03. 01. 2006. (12:15:51) Postovi: (6A)16
Spol: 
Lokacija: Nigdjezemska
|
Postano: 15:12 ned, 27. 5. 2007 Naslov: |
|
|
joj da, uopce nisam uocila da umjesto di imam vi.. :oops:
[quote]Ako npr. imam artikl art (koji ima šifru npr. 5), on bi trebao imati referencu na svoju količinu. Ako u skladište ubacim artikl (kojeg nije bilo prije u tom skladištu) sa manjom šifrom, npr. 4. Vjerojatno će art.kolicina() sada referencirati na količinu artikla sa šifrom 4, što nikako ne bi bilo dobro[/quote]
moram priznati da ne razumijem bas ovo..
meni je artikl (s malim slovima) struktura koja se sastoji od int code, double koliko i string name pa kad dodajem artikl koji nije jos dodan stvorim novi artikl s kojem prekopiram parametre, postavim ga na kraj vektora artikala i sortiram taj vektor artikala po code-u po onoj funkciji gore (usput jos u static listu stavim taj artikl ako nije dodan ili povecam kolicinu ako je vec negdje dodan).
mozda sam si sve to krivo interpretirala...
Sad sam nasla opet novi problem...
imam funkciju nadji_sifru.
dakle, setam ja iteratorom po svojoj static listi artikala dođem do tamo di mi iterator pokazuje na ime koje tražim (li->name == ime) i vratim li->code ali mi kompajler nalazi ovakvu grešku: cannot declare member function 'static int SKLADISTE::nadji_sifru bla bla...
I jos nesto, fakat svaka čast asistentu Vinku koji u kratkom vremenu odgovori na sva postavljena pitanja!! :veselje:
Hvala na pomoći!
joj da, uopce nisam uocila da umjesto di imam vi..
Citat: | Ako npr. imam artikl art (koji ima šifru npr. 5), on bi trebao imati referencu na svoju količinu. Ako u skladište ubacim artikl (kojeg nije bilo prije u tom skladištu) sa manjom šifrom, npr. 4. Vjerojatno će art.kolicina() sada referencirati na količinu artikla sa šifrom 4, što nikako ne bi bilo dobro |
moram priznati da ne razumijem bas ovo..
meni je artikl (s malim slovima) struktura koja se sastoji od int code, double koliko i string name pa kad dodajem artikl koji nije jos dodan stvorim novi artikl s kojem prekopiram parametre, postavim ga na kraj vektora artikala i sortiram taj vektor artikala po code-u po onoj funkciji gore (usput jos u static listu stavim taj artikl ako nije dodan ili povecam kolicinu ako je vec negdje dodan).
mozda sam si sve to krivo interpretirala...
Sad sam nasla opet novi problem...
imam funkciju nadji_sifru.
dakle, setam ja iteratorom po svojoj static listi artikala dođem do tamo di mi iterator pokazuje na ime koje tražim (li→name == ime) i vratim li→code ali mi kompajler nalazi ovakvu grešku: cannot declare member function 'static int SKLADISTE::nadji_sifru bla bla...
I jos nesto, fakat svaka čast asistentu Vinku koji u kratkom vremenu odgovori na sva postavljena pitanja!!
Hvala na pomoći!
_________________ Stultorum plena sunt omnia.
/Ciceron/
|
|
[Vrh] |
|
vinko Forumaš(ica)

Pridružen/a: 26. 08. 2006. (23:08:00) Postovi: (1A8)16
Spol: 
Lokacija: PMF-MO 214
|
Postano: 15:57 ned, 27. 5. 2007 Naslov: |
|
|
[quote="iuppiter"]moram priznati da ne razumijem bas ovo..
meni je artikl (s malim slovima) struktura koja se sastoji od int code, double koliko i string name pa kad dodajem artikl koji nije jos dodan stvorim novi artikl s kojem prekopiram parametre, postavim ga na kraj vektora artikala i sortiram taj vektor artikala po code-u po onoj funkciji gore (usput jos u static listu stavim taj artikl ako nije dodan ili povecam kolicinu ako je vec negdje dodan).
mozda sam si sve to krivo interpretirala...[/quote]
Dakle, strutura ARTIKL bi trebala između ostalog imati funkciju [b]double[/b]& kolicina().
Kolicinu artikla u nekom skladištu mogu mijenjati funkcijama SKLADISTE::dodaj, SKLADISTE::uzmi, ali i ARTIKL::kolicina().
Zbog toga bi u strukturi ARTIKL trebao imati pokazivač na količinu, pa to malo drugačije osmisliti (možda ste to tako i napravili).
Dakle ako imam skladište s:
[code:1]SKLADISTE::ARTIKL a = s.dodaj("Olovka", 5), b=s.nadji("Olovka");
a.kolicina()+=10; // i dalje je a.kolicina()==b.kolicina()[/code:1]
[quote="iuppiter"]Sad sam nasla opet novi problem...
imam funkciju nadji_sifru.
dakle, setam ja iteratorom po svojoj static listi artikala dođem do tamo di mi iterator pokazuje na ime koje tražim (li->name == ime) i vratim li->code ali mi kompajler nalazi ovakvu grešku: cannot declare member function 'static int SKLADISTE::nadji_sifru bla bla...[/quote]Što se tiče drugog pitanja, vjerojatno vam i kod implementacije stoji static (pogrešno).
Treba biti samo
int SKLADISTE::nadji_sifru(...) {...}
iuppiter (napisa): | moram priznati da ne razumijem bas ovo..
meni je artikl (s malim slovima) struktura koja se sastoji od int code, double koliko i string name pa kad dodajem artikl koji nije jos dodan stvorim novi artikl s kojem prekopiram parametre, postavim ga na kraj vektora artikala i sortiram taj vektor artikala po code-u po onoj funkciji gore (usput jos u static listu stavim taj artikl ako nije dodan ili povecam kolicinu ako je vec negdje dodan).
mozda sam si sve to krivo interpretirala... |
Dakle, strutura ARTIKL bi trebala između ostalog imati funkciju double& kolicina().
Kolicinu artikla u nekom skladištu mogu mijenjati funkcijama SKLADISTE::dodaj, SKLADISTE::uzmi, ali i ARTIKL::kolicina().
Zbog toga bi u strukturi ARTIKL trebao imati pokazivač na količinu, pa to malo drugačije osmisliti (možda ste to tako i napravili).
Dakle ako imam skladište s:
Kod: | SKLADISTE::ARTIKL a = s.dodaj("Olovka", 5), b=s.nadji("Olovka");
a.kolicina()+=10; // i dalje je a.kolicina()==b.kolicina() |
iuppiter (napisa): | Sad sam nasla opet novi problem...
imam funkciju nadji_sifru.
dakle, setam ja iteratorom po svojoj static listi artikala dođem do tamo di mi iterator pokazuje na ime koje tražim (li→name == ime) i vratim li→code ali mi kompajler nalazi ovakvu grešku: cannot declare member function 'static int SKLADISTE::nadji_sifru bla bla... | Što se tiče drugog pitanja, vjerojatno vam i kod implementacije stoji static (pogrešno).
Treba biti samo
int SKLADISTE::nadji_sifru(...) {...}
|
|
[Vrh] |
|
iuppiter Forumaš(ica)


Pridružen/a: 03. 01. 2006. (12:15:51) Postovi: (6A)16
Spol: 
Lokacija: Nigdjezemska
|
|
[Vrh] |
|
jelena194 Forumaš(ica)

Pridružen/a: 01. 02. 2007. (11:08:25) Postovi: (C)16
|
|
[Vrh] |
|
pero Forumaš(ica)


Pridružen/a: 02. 02. 2005. (17:13:37) Postovi: (81)16
Spol: 
|
|
[Vrh] |
|
vinko Forumaš(ica)

Pridružen/a: 26. 08. 2006. (23:08:00) Postovi: (1A8)16
Spol: 
Lokacija: PMF-MO 214
|
Postano: 17:14 ned, 27. 5. 2007 Naslov: |
|
|
[quote="iuppiter"]radi mi ispravno funkcija kolicina, probala sam Vas primjer i a.kolicina()==b.kolicina.
[quote] Što se tiče drugog pitanja, vjerojatno vam i kod implementacije stoji static (pogrešno).
Treba biti samo
int SKLADISTE::nadji_sifru(...) {...}[/quote]
u zadatku stoji static int i static string kod nadji_sifru i nadji_ime. dakle, mogu maknut static u oba slucaja, radi se o pogresci u zadavanju zadatka?[/quote]
U definiciji strukture (u .h datoteci) treba stojati static, kao što piše u zadatku, ali u implementaciji (ako je odvojena od definicije - u .cpp datoteci) ne.
iuppiter (napisa): | radi mi ispravno funkcija kolicina, probala sam Vas primjer i a.kolicina()==b.kolicina.
Citat: | Što se tiče drugog pitanja, vjerojatno vam i kod implementacije stoji static (pogrešno).
Treba biti samo
int SKLADISTE::nadji_sifru(...) {...} |
u zadatku stoji static int i static string kod nadji_sifru i nadji_ime. dakle, mogu maknut static u oba slucaja, radi se o pogresci u zadavanju zadatka? |
U definiciji strukture (u .h datoteci) treba stojati static, kao što piše u zadatku, ali u implementaciji (ako je odvojena od definicije - u .cpp datoteci) ne.
|
|
[Vrh] |
|
vinko Forumaš(ica)

Pridružen/a: 26. 08. 2006. (23:08:00) Postovi: (1A8)16
Spol: 
Lokacija: PMF-MO 214
|
|
[Vrh] |
|
vinko Forumaš(ica)

Pridružen/a: 26. 08. 2006. (23:08:00) Postovi: (1A8)16
Spol: 
Lokacija: PMF-MO 214
|
|
[Vrh] |
|
iuppiter Forumaš(ica)


Pridružen/a: 03. 01. 2006. (12:15:51) Postovi: (6A)16
Spol: 
Lokacija: Nigdjezemska
|
|
[Vrh] |
|
m00nblade Forumaš(ica)

Pridružen/a: 30. 10. 2005. (13:26:10) Postovi: (54)16
Spol: 
|
|
[Vrh] |
|
iuppiter Forumaš(ica)


Pridružen/a: 03. 01. 2006. (12:15:51) Postovi: (6A)16
Spol: 
Lokacija: Nigdjezemska
|
|
[Vrh] |
|
m00nblade Forumaš(ica)

Pridružen/a: 30. 10. 2005. (13:26:10) Postovi: (54)16
Spol: 
|
|
[Vrh] |
|
iuppiter Forumaš(ica)


Pridružen/a: 03. 01. 2006. (12:15:51) Postovi: (6A)16
Spol: 
Lokacija: Nigdjezemska
|
|
[Vrh] |
|
|