C++ while uvjet

poruka: 4
|
čitano: 989
|
moderatori: Lazarus Long, XXX-Man, vincimus
1
+/- sve poruke
ravni prikaz
starije poruke gore
14 godina
neaktivan
offline
C++ while uvjet

Pozdrav.

Na faksu rješavamo zadatke u c++ i za oko mi je zapelo nešto što je jedan kolega napravio pa mi nije baš jasno.

 

while(cout << "poruka" || true)

   ......

   ......

   if(.....) break;

 

s tim da je "poruka" nekakav izbornik za zadatak s više opcija.

 

koliko sam ja skužio while će se izvršavati tako dugo dok se ispisuje "poruka" (ispravite me ako griješim), ali koja je svrha ovog || true i jel može i bez toga.

 

za one koji se pitaju.. da, to bi bilo poželjno i trebalo bi se pomoću switch naredbe, ali u zadnje vrijeme pokušavamo pronaći načine da smanjimo broj blokova u zadatku,

oni koji su studirali na FOIu i upisali programiranje 2 znaju kakvu muku mučimo xD

 
1 0 hvala 0
9 godina
neaktivan
offline
Re: C++ while uvjet
popay4 kaže...

Pozdrav.

Na faksu rješavamo zadatke u c++ i za oko mi je zapelo nešto što je jedan kolega napravio pa mi nije baš jasno.

 

while(cout << "poruka" || true)

   ......

   ......

   if(.....) break;

 

s tim da je "poruka" nekakav izbornik za zadatak s više opcija.

 

koliko sam ja skužio while će se izvršavati tako dugo dok se ispisuje "poruka" (ispravite me ako griješim), ali koja je svrha ovog || true i jel može i bez toga.

 

za one koji se pitaju.. da, to bi bilo poželjno i trebalo bi se pomoću switch naredbe, ali u zadnje vrijeme pokušavamo pronaći načine da smanjimo broj blokova u zadatku,

oni koji su studirali na FOIu i upisali programiranje 2 znaju kakvu muku mučimo xD

 

Operator || je operator logičkog ili, dovoljno je da operacija lijevo od tog znaka ili desno bude true i cijela vrijednost unutar zagrade će biti true. Pošto je desna strana uvijek true, cijeli izraz će uvijek biti true i petlja će se vrtiti beskonačno mnogo puta ili dok ne naiđe na naredbu break. String unutar navodnika će se ispisati prilikom svake iteracije, mogao je to staviti i unutar vitičastih zagrada, isti bi efekt bio. Ne vidim smisao ovog koda :)

Poruka je uređivana zadnji put uto 29.11.2016 17:11 (wAlpha).
14 godina
neaktivan
offline
Re: C++ while uvjet

Da shvatio sam, hvala na odgovoru :)

Smisao ovog koda je samo da zamjeni selekciju switch da bude ćim manje blokova (vitičastih zagrada), naravno u praksi se to definitivno nebi koristilo umjesto switcha, barem mislim, ali mi smo na faksu prisiljeni pošto imamo proklete muke s profesorom i s malim vražjim programom zvanim "verifikator".

17 godina
offline
C++ while uvjet

Taj profesor očito nema predodžbu o složenosti programa sa O notacijom.

Ovdje while petlja služi samo za ponavljanje upisa opcije ukoliko se želi ponoviti program ili ukoliko je opcija nepravilno upisana. Složenost je konstantna O(1), jer pukneš opciju koju hoćeš.

Vrh složenosti ovdje ne možeš izbjeći nikako jer jednostavno grananje ne možeš izbjeći, odabranu opciju moraš usporediti sa svim opcijama, što nam daje linearnu složenost O(n), gdje je n broj opcija. Postavio ti grananje switch blokom ili if else grananjem, dođe na isto. Dakle, kakve ima veze koju vrstu grananja koristiš.

 

Bolje bi mu bilo da vas uči pravom smanjenju složenosti programa, što nema veze sa ovim.

Poruka je uređivana zadnji put čet 1.12.2016 14:34 (Floki).
 
1 0 hvala 0
1
Nova poruka
E-mail:
Lozinka:
 
vrh stranice