Korduv tegevus, while-tsükkel
Tulemuste saavutamiseks on mõnikord vaja tegevusi sooritada mitu korda. Näiteks spordivõistluste võitmiseks tuleb selleks eelnevalt korduvalt harjutada.
Programmeerimises saab korduvad tegevused lasta arvutil ära teha, kasutades tsüklit.
Näiteks Scratch'is paneb järgmine kood kassi aeglaselt hundiratast viskama:
-----------------------
Ülesanded 1
1. Joonista kilpkonnaga "aed":
-----------------------
Tsükkel ehk korduslause - "korda tegevust x korda"
Kui meil on vaja teha sama toimingut mitu korda järjest, siis võib programmi kirjutada laused lihtsalt mitmekordselt nagu eelnevas "aia programmis". Kui neid kordusi on aga väga palju, muutub selline korduste pidev kirjutamine tüütuks.
Korduvate asjade kirjapanekuks saab kasutada tsükleid ehk korduslauseid. Korduslaused kirjeldavad ära, mitu korda mingit sarnast tegevust tuleb korrata.
![]() |
Mille joonistab selline while-tsükkel? |
-----------------------
While tsükkel
Eelmisel joonisel olev tsükkel kordab tegevust niikaua, kuni muutuja "kordus" väärtus on väiksem kui 4. Muutuja "kordus" väärtus on alguses 0 ja seejärel suurendatakse seda tsükli sees iga korraga ühe võrra: kordus = kordus+1
-----------------------
Ülesanded 2
1. Muuda oma eelmise ülesande koodi nii, et kasutad aia joonistamisel while-tsüklit.
2. Joonista kilpkonnaga päike, kasutades while-tsüklit:
1. Loo Pykkari jaoks labürint ja pane Pykkar seda läbima.
Näide labürindist. Pykkar peab jõudma labürindi lõpus oleva kastini ja näoga sinna ette seisma jääma. Siis on mäng läbi.
1. Tee ära need asjad, mida tunnis ei jõudnud. PYKKARI KÄSUD (mine avaneval veebilehel natuke allpoole).
Kodutööde tegemiseks lae endale arvutisse pykkari moodul: pykkar.py (salvesta see oma Pythoni failide kausta).
LIHTSAMAD ÜLESANDED:
2. Pane Pykkar kõndima mööda seina ääri, nii et ta teeks maailmale tiiru peale (proovi kasuta while tsüklit, kui see ei õnnestu, võib ka ilma, lihtsalt step() ja right() abil)
3. Loo Pykkari maailm, kus üks ruut temast eemal on ära värvitud. Kui Pykkar jõuab ruudu peale, jääb ta seisma.
KEERUKAMAD ÜLESANDED:
4. Täienda Ülesandes 2 punkti 8 nii, et Pykkar lükkab koonuse seinani ja seejärel kõnnib ilma koonuseta edasi 20 sammu. Seina ja koonuse juures pöörab alati ümber. (Vihje: vajadusel kasuta and-lauset)
5. Loo suurem Pykkari maailm, kus on 3-4 koonust ja Pykkar peab nende ümbert mööda jalutama
6. Loo Pykkari maailm, mis on näha pildil:
7. Lisa käsud, mis muudavad Pykkari maailma selliseks:
2. Joonista kilpkonnaga päike, kasutades while-tsüklit:
3. Joonista "kilpkonnaga" labürint, kasutades while-tsüklit:
-----------------------
LISAÜLESANDED 1
1. Joonista "kilpkonnaga" kolmnurkne labürint, kasutades while-tsüklit.
2. Joonista "kilpkonnaga" spiraal, kasutades while-tsüklit ja ringi (infot ringi joonistamise ja teiste turtle käskude kohta leiab: https://docs.python.org/3/library/turtle.html )
3. MALELAUD. Kilpkonnaga saab ka kujundeid värvida, selleks on käsud begin_fill ja end_fill.
Järgmine kood joonistab kilpkonnaga ruudu ja värvib selle:
Joonista kilpkonnaga malelaud, kasutades while-tsüklit:
-----------------------
Pykkar
Salvesta oma arvutisse oma Pythoni programmikoodide kausta moodul: pykkar.py
Proovime käivitada Pykkari näisidprogrammi. Programmi koodi leiad siit lingilt.
Kopeeri programmi kood, salvesta mingi nimega (see peab erinema nimest pykkar.py).
- step() - pükkar liigub ühe sammu edasi
- right() - pükkar pöörab paremale
- push() - pükkar lükkab koonust
- take() - pükkar tõstab koonuse üles
- put() - pükkar paneb koonuse maha
-----------------------
Ülesanded 3
1. Täienda oma Pykkari programmikoodi (pykkarikood1) nii, et robot sammuks seinani, pööraks ümber ja sammuks teise seinani, pööraks seal ümber ja sammuks veelkord tagasi.
(Vt Pykkari maailma käskusid)
2. Täienda eelmist programmi nii, et programm küsiks sinu käest, mitu sammu robot peab astuma (nt 100) ja robot kõnniks selle arvu samme. Iga kord, kui robot jõuab seinani, pöörab ta ümber ja sammub edasi. (Vihje: kasuta while tsüklit ja vajadusel if-lauset).
3. Pane Pykkar koonust lükkama või koonust kandma.
4. Pane Pykkar koonust lükkama nii, et kui sein tuleb vastu, siis Pykkar pöörab ümber:
![]() |
Vihje: selleks, et robot koos koonusega seina juures ümber pööraks, võib vajadusel proovida kasutada ka try-except "püünist". Try alla pane while-tsükkel ja except alla muu tegevus. |
LISAÜLESANNE 2
Näide labürindist. Pykkar peab jõudma labürindi lõpus oleva kastini ja näoga sinna ette seisma jääma. Siis on mäng läbi.
-----------------------
Kodutööd
1. Tee ära need asjad, mida tunnis ei jõudnud. PYKKARI KÄSUD (mine avaneval veebilehel natuke allpoole).
Kodutööde tegemiseks lae endale arvutisse pykkari moodul: pykkar.py (salvesta see oma Pythoni failide kausta).
LIHTSAMAD ÜLESANDED:
2. Pane Pykkar kõndima mööda seina ääri, nii et ta teeks maailmale tiiru peale (proovi kasuta while tsüklit, kui see ei õnnestu, võib ka ilma, lihtsalt step() ja right() abil)
3. Loo Pykkari maailm, kus üks ruut temast eemal on ära värvitud. Kui Pykkar jõuab ruudu peale, jääb ta seisma.
KEERUKAMAD ÜLESANDED:
4. Täienda Ülesandes 2 punkti 8 nii, et Pykkar lükkab koonuse seinani ja seejärel kõnnib ilma koonuseta edasi 20 sammu. Seina ja koonuse juures pöörab alati ümber. (Vihje: vajadusel kasuta and-lauset)
5. Loo suurem Pykkari maailm, kus on 3-4 koonust ja Pykkar peab nende ümbert mööda jalutama
6. Loo Pykkari maailm, mis on näha pildil:
7. Lisa käsud, mis muudavad Pykkari maailma selliseks:
Kommentaare ei ole:
Postita kommentaar