Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: C: Kuinka käsittäisin miten tämä toimii

kermiitti [20.10.2007 21:52:44]

#

for(x=0; x<=2; x++)
{
  for(j=0; j<=2; j++)
  {
    yht = yht + luvut[x][j];
   }
}

Aloittelija3 [20.10.2007 22:06:30]

#

for

Grez [21.10.2007 00:59:27]

#

Siis tuossahan on kaksi sisäkkäistä silmukkaa. Lopputuloksena yht-muuttujan arvoa kasvatetaan seuraavien lukujen summalla luvut[0][0], luvut[0][1], luvut[1][0], luvut[1][1].

Jos et tuon selostukseni perusteella tajunnut, niin yksi hyvä tapa havainnollistaa itselleen mitä tapahtuu olisi ajaa tuota jossain debug-ympäristössä rivi kerrallaan ja katsoa mitä siellä käytännössä tapahtuu.

Metabolix [21.10.2007 12:05:54]

#

for (A; B; C) { D }

  1. Tehdään A.
  2. Tarkistetaan, onko B tosi; jos on, jatketaan, muuten hypätään kohtaan 6.
  3. Tehdään D.
  4. Tehdään C.
  5. Hypätään kohdan 2 tarkistukseen.
  6. Loppu.

Näillä ohjeilla voit kynän ja paperin kanssa suorittaa tuon antamasi silmukkaparin läpi. Kannattaa kokeilla!

jlaire [21.10.2007 16:34:35]

#

Grez kirjoitti:

Lopputuloksena yht-muuttujan arvoa kasvatetaan seuraavien lukujen summalla luvut[0][0], luvut[0][1], luvut[1][0], luvut[1][1].

... luvut[0][2], luvut[1][2], luvut[2][0], luvut[2][1] ja luvut[2][2].

C-tyyppistä for-silmukkaa voi myös ajatella while-silmukkana: for (A; B; C) { ... } on ainakin suunnilleen sama kuin A; while (B) { ... C }

Grez [21.10.2007 18:53:20]

#

Joo, sori, katsoin huolimattomasti että j<2 ja i<2, mutta olikin <=.

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta