For petlje unutar for petlje

poruka: 14
|
čitano: 8.963
|
moderatori: XXX-Man, vincimus
1
+/- sve poruke
ravni prikaz
starije poruke gore
13 godina
neaktivan
offline
For petlje unutar for petlje

Pozdrav svima!

Počeo sam se učiti C++ prije nekih 2 mjeseca i za sada sve fino napreduje. Uzeo sam si "Demistificirani C++" kao neku osnovnu literaturu, tu i tamo se poslužim internetom ako baš u knjizi nije nešto dobro objašnjeno. E sad...naredbe tipa if, switch...case, while i do...while sam shvatio jako dobro. Ono što mi predstavlja problem je for petlja. Općenito kužim koncept i poantu te for petlje i čemu to služi i znao bih neke jednostavne stvari s tim napraviti (npr. ispis brojeva do 10).

Problem mi predstavlja recimo situacija dok je unutar for petlje više for petlji (a i općenito ostale već spomenute naredbe unutar for petlje su problem)...e tu zablokiram. {#}

Pročačkao sam na stotine stranica, foruma i pregledao desetak knjiga i nigdje nisam pronašao dovoljno kvalitetno pojašnjeni ovaj segment koji me zanima.

Pa ako postoji netko ko se dobro kuži u C++, a da bi znao kvalitetno objasniti ovo ( doslovce ko malom djetetu {#} ) bio bih do groba zahvalan! {#}

 

P.S: Znam da je naslov malo smiješan...inspiracija je napravila svoje :D ( očigledno previše xzibit i inception meme-a )

 
0 0 hvala 0
14 godina
neaktivan
offline
Re: For petlje unutar for petlje
saftek&makaroni kaže...

Pozdrav svima!

Počeo sam se učiti C++ prije nekih 2 mjeseca i za sada sve fino napreduje. Uzeo sam si "Demistificirani C++" kao neku osnovnu literaturu, tu i tamo se poslužim internetom ako baš u knjizi nije nešto dobro objašnjeno. E sad...naredbe tipa if, switch...case, while i do...while sam shvatio jako dobro. Ono što mi predstavlja problem je for petlja. Općenito kužim koncept i poantu te for petlje i čemu to služi i znao bih neke jednostavne stvari s tim napraviti (npr. ispis brojeva do 10).

Problem mi predstavlja recimo situacija dok je unutar for petlje više for petlji (a i općenito ostale već spomenute naredbe unutar for petlje su problem)...e tu zablokiram. {#}

..................................

 

  U narodu poznato kao dvostruka for petlja :).. 

 

  Znači za  1 izvršavanje vanjske  petlje , unutarnja se izvrši maksimalni broj puta. To je sva logika for petlje.

 

  Jel jasno sad ? 

16 godina
neaktivan
offline
For petlje unutar for petlje

Za primjer si uzmi ovaj slučaj:

 

#include <stdio.h>

 

int main() {

   for(int i = 0; i < 10; ++i) {

     for(int j = 0; j < 10; ++j)

       printf("%d ", j);

     printf("\n");

   }

 

   return 0;

}

 

Što očekuješ kao izlaz? Out:

 

0 1 2 3 4 5 6 7 8 9

0 1 2 3 4 5 6 7 8 9

0 1 2 3 4 5 6 7 8 9

0 1 2 3 4 5 6 7 8 9

0 1 2 3 4 5 6 7 8 9

0 1 2 3 4 5 6 7 8 9

0 1 2 3 4 5 6 7 8 9

0 1 2 3 4 5 6 7 8 9

0 1 2 3 4 5 6 7 8 9

0 1 2 3 4 5 6 7 8 9

 

 

E sad, ovo možeš zamjeniti na ovaj način:

 

#include <stdio.h>

void unutarnjaPetlja() {

    for(int j = 0; j < 10; ++j)

       printf("%d ", j);

}

int main() {

   for(int i = 0; i < 10; ++i) {

     unutarnjaPetlja();

     printf("\n");

   }

 

   return 0;

}

 

I tako si to možeš zamisliti. Unutarnja petlja je samo "još jedna naredba" unutar petlje. Izvršiti će se kao i da nema one druge petlje iznad nje, samo što je razlika da će se u potpunosti izvršiti toliko puta koliko se gornja petlja ponavlja.

Nadam se da shvaćaš što želim reći. Ako je neki dio nejasan, pitaj.

 
3 0 hvala 0
13 godina
neaktivan
offline
For petlje unutar for petlje

Recimo da imam 3 for petlje (jednu unutar druge)... uvjet je za sve petlje recimo ispis brojeva <10. 

Ako sam dobro shvatio, trebao bih dobiti ispis sličan ovome:

 

i  j  k   i  j  k

 

0 0 0 - 0 0 9

0 1 0 - 0 1 9

0 2 0 - 0 2 9

...

9 9 0 - 9 9 9

 

 

Znači ona petlja koja je "najdublja" se najbrže izvršava, a ove vanjske najsporije? (ispravite me ako sam negdje zabrljao)

Poruka je uređivana zadnji put pet 3.8.2012 14:34 (saftek&makaroni).
 
0 0 hvala 0
17 godina
offline
For petlje unutar for petlje

Jeste, baš tako.

 

Svaki put kad se brojač spoljašnje petlje poveća za jedan, unutrašnja petlja se izvrši cela (od 1 do 10).

Moj PC  
1 0 hvala 0
14 godina
neaktivan
offline
For petlje unutar for petlje

Gle, najbolje da ti ovako objasnim :

 

Kod:

 

#include <iostream>

int main()

{

int i;

int x;

for (i = 0; i < 5; i++)

{

    for (x = 0; x < 5; x++)

   {

          cout << "i = " << i << ",";

          cout << "x = " << x;

   }

}

return 0;

}

 

I za rezultat dobiješ :

i = 0, x = 0

i = 0, x = 1

i = 0, x = 2

i = 0, x = 3

i = 0, x = 4

i = 0, x = 5

i = 1, x = 0

i = 1, x = 1

i = 1, x = 2

i = 1, x = 3

i = 1, x = 4

i = 1, x = 5

i = 2, x = 0

i = 2, x = 1

i = 2, x = 2

i = 2, x = 3

i = 2, x = 4

i = 2, x = 5

i = 3, x = 0

i = 3, x = 1

i = 3, x = 2

i = 3, x = 3

i = 3, x = 4

i = 3, x = 5

i = 4, x = 0

i = 4, x = 1

i = 4, x = 2

i = 4, x = 3

i = 4, x = 4

i = 4, x = 5

 

Nadam se da sam pomogao!

Poruka je uređivana zadnji put pet 3.8.2012 14:47 (TheGh0st).
Moj PC  
2 0 hvala 2
13 godina
neaktivan
offline
For petlje unutar for petlje

To te ja pitam, sad kužim taj princip. {#}

E sad, vezano uz sve ovo... Kako ću znat danas sutra kad koristiti te dvostruke,trostruke for petlje?

Ne vidim (trenutno) neku svrhu kod njih, osim što me glava boli od njih {#}

 
0 0 hvala 0
13 godina
neaktivan
offline
For petlje unutar for petlje

TheGh0st kak to da ti ispisuje 5, a uvjet je broj manji od 5?

 
0 0 hvala 0
14 godina
neaktivan
offline
For petlje unutar for petlje

Editano i ispravljeno. U glavi mi se nešto događalo, pa baš nisam razmišljao bistro. Anyway, bitno je da si skužio. :)

 

Koristiš ih u nekim zadacima.

 

Primjer : Unesi n (1 <= n <= 15) i ispiši tablicu množenja n2 (n na kvadrat).

Poruka je uređivana zadnji put pet 3.8.2012 14:49 (TheGh0st).
Moj PC  
0 0 hvala 0
17 godina
offline
For petlje unutar for petlje

Forception. For petlja unutar for petlje unutar for petlje. xD

 

A za što će ti trebati takav koncept? Pa za mnogo toga, recimo matrice, ispise, prebrojavanja, unose podataka, ...

Gledaj na ta kao na petlje unutar petlji isto kao što gledaš na npr do while unutar for petlje unutar if-else grananja.

Prodajem RAGE za PS3: http://www.bug.hr/forum/topic/igre-accounti-igrama/prodaja-igra-rage-playstation-3/129629.aspx?page=0&amp;amp;amp;jumpto=2529211&amp;amp;amp;sort=asc&amp;amp;amp;view=flat
Moj PC  
0 0 hvala 0
13 godina
neaktivan
offline
For petlje unutar for petlje

Znači dok mi treba neki program koji nešto ispisuje u više stupaca onda koristim višestruke for petlje?

 
0 0 hvala 0
13 godina
offline
Re: For petlje unutar for petlje

A joj, zašto sada tražiš probleme preko rješenja. Probaj tražiti rješenje preko problema. Evo, napiši program koji će porediti dva znakovna niza.

17 godina
offline
Re: For petlje unutar for petlje
saftek&makaroni kaže...

Znači dok mi treba neki program koji nešto ispisuje u više stupaca onda koristim višestruke for petlje?

To je jedan od primjera.

Recimo da imaš 2D polje. Putem FOR petlji popunjavaš polje po stupcima ili redovima.

Prodajem RAGE za PS3: http://www.bug.hr/forum/topic/igre-accounti-igrama/prodaja-igra-rage-playstation-3/129629.aspx?page=0&amp;amp;amp;jumpto=2529211&amp;amp;amp;sort=asc&amp;amp;amp;view=flat
13 godina
neaktivan
offline
Re: For petlje unutar for petlje
191x7 kaže...
saftek&makaroni kaže...

Znači dok mi treba neki program koji nešto ispisuje u više stupaca onda koristim višestruke for petlje?

To je jedan od primjera.

Recimo da imaš 2D polje. Putem FOR petlji popunjavaš polje po stupcima ili redovima.

Kužim kužim. Fali prakse malo jbga, ipak sam početnik. 

Zahvaljujem se svima na odgovorima, pomogli su! :)

Poruka je uređivana zadnji put pet 3.8.2012 15:00 (saftek&makaroni).
1
Nova poruka
E-mail:
Lozinka:
 
vrh stranice