3. While-silmukka (myös lukujonoista)
While-silmukka
Ohjelmoinnissa silmukka tarkoittaa tilannetta, jossa jotakin komentoa, tai komentoja, toistetaan niin kauan kunnes annettu ehto ei ole enää tosi. Silmukat ovat tärkeitä, sillä niillä voidaan automaattisesti toistaa jotakin komentoa tarvittavan monta kertaa tekemättä itse mitään.
Silmukka toistaa komentoa niin kauan, kuin ehto täyttyy.
Silmukka luodaan while-komennolla (suom. sillä aikaa). While-komennon perään kirjoitetaan silmukan ehto ja while-komennon alle kirjoitetaan suoritettava komento. Huomaa kaksoispiste ehdon perässä ja sisennys suoritettavissa komennoissa.
Esimerkki 1.
Tehtävä 1.
Tulosta luvut 5-15 while-silmukan avulla. Ota mallia yläpuolella olevasta esimerkistä 1.
Silmukka pyörii ikuisesti, jos silmukan ehto on aina totta.
Esimerkki 2.
Silmukan ehdot ehdot annetaan käyttäen seuraavia vertailumerkkejä.
Silmukka toistaa komentoa niin kauan, kuin ehto täyttyy.
Silmukka luodaan while-komennolla (suom. sillä aikaa). While-komennon perään kirjoitetaan silmukan ehto ja while-komennon alle kirjoitetaan suoritettava komento. Huomaa kaksoispiste ehdon perässä ja sisennys suoritettavissa komennoissa.
Esimerkki 1.
Tehtävä 1.
Tulosta luvut 5-15 while-silmukan avulla. Ota mallia yläpuolella olevasta esimerkistä 1.
Silmukka pyörii ikuisesti, jos silmukan ehto on aina totta.
Esimerkki 2.
Silmukan ehdot ehdot annetaan käyttäen seuraavia vertailumerkkejä.
Merkki | Tarkoitus | Esimerkki |
== | Yhtä kuin | while [[$x==5$]]: |
< | Pienempi kuin | while [[$x<5$]]: |
> | Suurempi kuin | while [[$x>5$]]: |
<= | Pienempi tai yhtä suuri | while [[$x<=5$]]: |
>= | Suurempi tai yhtä suuri | while [[$x>=5$]]: |
!= | Eri suuri kuin | while [[$x!=5$]]: |
Lukujonoista
Lukujonoista
While-silmukan avulla on kätevä luoda lukujonoja, joissa jonon jäsenet määräytyvät tietyn säännön mukaan.
Aritmeettinen lukujono
Aritmeettisessa lukujonossa jonon peräkkäisten jäsenten välinen erotus on vakio. Esimerkiksi jono [[$1, \ 3, \ 5, \ 7, \ 9, \ 11$]] on aritmeettinen, sillä peräkkäisten jäsenten välinen erotus on aina kaksi. Jono [[$1, \ 3, \ 5, \ 7, \ 9, \ 11$]] on lisäksi kasvava, sillä jonon jäsenten arvot suurenevat jonon edetessä.
Esimerkki 3.
Tehtävä 2.
Tulosta kasvava aritmeettinen lukujono, jonka ensimmäinen jäsen on luku 4 ja peräkkäisten jäsenten välinen erotus on viisi. Jonossa on kymmenen jäsentä. Katso mallia yllä olevasta esimerkistä.
Geometrinen lukujono
Geometrisessa lukujonossa peräkkäisten jäsenten välinen osamäärä on vakio. Toisin sanoen, jonon seuraava jäsen saadaan kertomalla edellinen jäsen tietyllä luvulla. Esimerkiksi jono 1, 2, 4, 8, 16, 32, 64 on geometrinen, sillä seuraava jäsen saadaan kertomalla edellinen jäsen luvulla kaksi. Jono on lisäksi kasvava, sillä sillä jonon jäsenten arvot suurenevat jonon edetessä.
Esimerkki 4.
Tehtävä 3.
Muodosta kasvava geometrinen lukujono, jonka ensimmäinen jäsen on luku 2 ja jonka seuraava jäsen saadaan kertomalla edellinen jäsen luvulla 3. Jonossa on kuusi jäsentä. Katso mallia yllä olevasta esimerkistä.
While-silmukan avulla on kätevä luoda lukujonoja, joissa jonon jäsenet määräytyvät tietyn säännön mukaan.
Aritmeettinen lukujono
Aritmeettisessa lukujonossa jonon peräkkäisten jäsenten välinen erotus on vakio. Esimerkiksi jono [[$1, \ 3, \ 5, \ 7, \ 9, \ 11$]] on aritmeettinen, sillä peräkkäisten jäsenten välinen erotus on aina kaksi. Jono [[$1, \ 3, \ 5, \ 7, \ 9, \ 11$]] on lisäksi kasvava, sillä jonon jäsenten arvot suurenevat jonon edetessä.
Esimerkki 3.
Tehtävä 2.
Tulosta kasvava aritmeettinen lukujono, jonka ensimmäinen jäsen on luku 4 ja peräkkäisten jäsenten välinen erotus on viisi. Jonossa on kymmenen jäsentä. Katso mallia yllä olevasta esimerkistä.
Geometrinen lukujono
Geometrisessa lukujonossa peräkkäisten jäsenten välinen osamäärä on vakio. Toisin sanoen, jonon seuraava jäsen saadaan kertomalla edellinen jäsen tietyllä luvulla. Esimerkiksi jono 1, 2, 4, 8, 16, 32, 64 on geometrinen, sillä seuraava jäsen saadaan kertomalla edellinen jäsen luvulla kaksi. Jono on lisäksi kasvava, sillä sillä jonon jäsenten arvot suurenevat jonon edetessä.
Esimerkki 4.
Tehtävä 3.
Muodosta kasvava geometrinen lukujono, jonka ensimmäinen jäsen on luku 2 ja jonka seuraava jäsen saadaan kertomalla edellinen jäsen luvulla 3. Jonossa on kuusi jäsentä. Katso mallia yllä olevasta esimerkistä.
Tehtävät. Katso mallia sopivasta esimerkistä.
1. a) Tulosta luvut 1-100 while-silmukan avulla. (Esimerkki1)
b) Tulosta luvut 100-1 while-silmukan avulla.
2. Muodosta aritmeettinen lukujono [[$2, \ 4, \ 6, \ 8, \ ..., \ 1000$]] while-silmukan avulla. (Esimerkki 3)
3. Muodosta aritmeettinen lukujono [[$7, \ 4, \ 1, \ -2, \ -5, \ -8, \ -11$]] while-silmukan avulla.
4. Muodosta luvun [[$11$]] kertotaulu lukuun [[$110$]] asti. (Seuraava jonon jäsen saadaan edellisestä lisäämällä luku 11.)
5. Muodosta geometrinen lukujono, jonka ensimmäinen jäsen on luku [[$5$]] ja jonka seuraava jäsen saadaan kertomalla edellinen jäsen luvulla [[$2$]]. Jonon suurin jäsen on [[$2560$]]. (Esimerkki 4)
6.* Muodosta geometrinen lukujono [[$1, \ -2, \ 4, \ -8, \ 16, \ -32, \ 64$]] while-silmukan avulla.
7.* Muodosta geometrinen lukujono [[$$ 1, \ \frac{1}{2}, \ \frac{1}{4}, \ \frac{1}{8}, \ \frac{1}{16}, \ \frac{1}{32} $$]] .
b) Tulosta luvut 100-1 while-silmukan avulla.
2. Muodosta aritmeettinen lukujono [[$2, \ 4, \ 6, \ 8, \ ..., \ 1000$]] while-silmukan avulla. (Esimerkki 3)
3. Muodosta aritmeettinen lukujono [[$7, \ 4, \ 1, \ -2, \ -5, \ -8, \ -11$]] while-silmukan avulla.
4. Muodosta luvun [[$11$]] kertotaulu lukuun [[$110$]] asti. (Seuraava jonon jäsen saadaan edellisestä lisäämällä luku 11.)
5. Muodosta geometrinen lukujono, jonka ensimmäinen jäsen on luku [[$5$]] ja jonka seuraava jäsen saadaan kertomalla edellinen jäsen luvulla [[$2$]]. Jonon suurin jäsen on [[$2560$]]. (Esimerkki 4)
6.* Muodosta geometrinen lukujono [[$1, \ -2, \ 4, \ -8, \ 16, \ -32, \ 64$]] while-silmukan avulla.
7.* Muodosta geometrinen lukujono [[$$ 1, \ \frac{1}{2}, \ \frac{1}{4}, \ \frac{1}{8}, \ \frac{1}{16}, \ \frac{1}{32} $$]] .