Search
 
 
  Engleski
 
 
 
Open in this window (click to change)
Forum@DeGiorgi: Početna
Forum za podršku nastavi na PMF-MO
Login Registracija FAQ Smajlići Članstvo Pretražnik Forum@DeGiorgi: Početna

3. zadaća? (informacija)
WWW:
Idite na Prethodno  1, 2, 3, 4, 5, 6, 7, 8
Moja sarma
 
Započnite novu temu   Odgovorite na temu   printer-friendly view    Forum@DeGiorgi: Početna -> Kolegiji 2. godine -> Računarski praktikum 1
Prethodna tema :: Sljedeća tema  
Autor/ica Poruka
lucika
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 22. 11. 2007. (17:52:27)
Postovi: (12F)16
Spol: žensko
Sarma = la pohva - posuda
24 = 34 - 10

PostPostano: 0:59 pet, 4. 6. 2010    Naslov: Citirajte i odgovorite

[quote="Cobs"]i destruktor:

[code:1]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 }
}

}[/code:1]

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.[/quote]


koristila sam fju erase za izbacivanje tog pokazivača iz liste...kaj da onda stavim umjesto tog? :?
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


[Vrh]
Korisnički profil Pošaljite privatnu poruku
Milojko
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 07. 11. 2008. (14:57:52)
Postovi: (453)16
Spol: kućni ljubimac
Sarma = la pohva - posuda
17 = 68 - 51
Lokacija: Hilbertov hotel

PostPostano: 1:08 pet, 4. 6. 2010    Naslov: Citirajte i odgovorite

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
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



_________________
Sedam je prost broj Smile

Bolonja je smeće i to pod hitno treba mijenjat
[Vrh]
Korisnički profil Pošaljite privatnu poruku MSNM
Cobs
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 21. 01. 2008. (13:32:15)
Postovi: (206)16
Spol: muško
Sarma = la pohva - posuda
26 = 40 - 14
Lokacija: Geto

PostPostano: 10:18 pet, 4. 6. 2010    Naslov: Citirajte i odgovorite

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 )
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 )


[Vrh]
Korisnički profil Pošaljite privatnu poruku Posjetite Web stranice
lucika
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 22. 11. 2007. (17:52:27)
Postovi: (12F)16
Spol: žensko
Sarma = la pohva - posuda
24 = 34 - 10

PostPostano: 11:20 pet, 4. 6. 2010    Naslov: Citirajte i odgovorite

skužila!!!
umjesto erase(i) treba bit erase(i++) :oops:
fala ljudovi! :weee:
skužila!!!
umjesto erase(i) treba bit erase(i++) Embarassed
fala ljudovi! Weeeeeee!!!!!!!!!!!


[Vrh]
Korisnički profil Pošaljite privatnu poruku
Cobs
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 21. 01. 2008. (13:32:15)
Postovi: (206)16
Spol: muško
Sarma = la pohva - posuda
26 = 40 - 14
Lokacija: Geto

PostPostano: 12:12 pet, 4. 6. 2010    Naslov: Citirajte i odgovorite

[quote="lucika"]skužila!!!
umjesto erase(i) treba bit erase(i++) :oops:
fala ljudovi! :weee:[/quote]

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:
[code:1]#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;
}[/code:1]

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!
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!


[Vrh]
Korisnički profil Pošaljite privatnu poruku Posjetite Web stranice
kkarlo
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 19. 05. 2010. (08:43:59)
Postovi: (1B2)16
Spol: zombi
Sarma = la pohva - posuda
64 = 72 - 8

PostPostano: 21:12 uto, 8. 5. 2012    Naslov: Citirajte i odgovorite

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?
:?


[size=7]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...[/size]
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...


[Vrh]
Korisnički profil Pošaljite privatnu poruku
Prethodni postovi:   
Započnite novu temu   Odgovorite na temu   printer-friendly view    Forum@DeGiorgi: Početna -> Kolegiji 2. godine -> Računarski praktikum 1 Vremenska zona: GMT + 01:00.
Idite na Prethodno  1, 2, 3, 4, 5, 6, 7, 8
Stranica 8 / 8.

 
Forum(o)Bir:  
Možete otvarati nove teme.
Možete odgovarati na postove.
Ne možete uređivati Vaše postove.
Ne možete izbrisati Vaše postove.
Ne možete glasovati u anketama.
You can attach files in this forum
You can download files in this forum


Powered by phpBB © 2001, 2002 phpBB Group
Theme created by Vjacheslav Trushkin
HR (Cro) by Ančica Sečan