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

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} $$]] .



​​