Teooria ja ülesanded - 5. tund

Tsüklid. While-tsükkel


-----------------------


Scratch - https://scratch.mit.edu/projects/editor/


  • Kordamine - kodutöö: Tegelane viskab ekraanil "hundiratast" - lahendus
  • Pane tegelane automaatselt liikuma 10 sammu kaupa edasi, kuni ta puudutab akna serva. Siis jääb tegelane seisma. (Tsükkel ehk kordused. Korda kuni...) - lahendus


-----------------------


Kilpkonn (turtle) Pythonis


Proovi Pythonis käivitada programm:

#impordime kilpkonna (turtle) programmi:
from turtle import *
forward(100)
left(120)
forward(100)
left(120)
forward(100)
left(120)
exitonclick() #lubab akna sulgeda hiireklõpsuga


(Allikas: https://programmeerimine.cs.ut.ee/01_sissejuhatus.html#kilpkonn

Selgitused:
  • forward(m) – liigu edasi m sammu (sammu pikkus on 1 piksel)
  • left(x), right(x) – pööre vasakule, pööre paremale x kraadi
  • up(), down() – tõsta pliiats üles, langeta pliiats alla, vastu ekraani

-----------------------

Ülesanded 1


1. Joonista kilpkonnaga kriipsjoon:  


2. Muuda oma eelmise programmi koodi nii, et saad joonistada kilpkonnaga kriipsjoone while-tsükli abil 
3. Joonista kilpkonnaga ruut 

4. Muuda oma eelmise ülesande koodi nii, et saad kilpkonnaga joonistada ruudu asemel labürindi:
VIHJE: kasuta while-tsüklit

Labürindi lahendus:
  • Lahendus 1 (ilma tsüklita, proovime, mis tegevusi me peame tegema, et labürint joonistada. Selle põhjal saame mõelda välja, kuidas tsükkel kirja panna - st peame vaatama, missugused tegevused korduvad ja mis intervalliga)
  • Lahendus 2 - tsükliga (selgitavate kommentaaridega variant)
  • Lahendus 2 - tsükliga (ilma kommentaarideta)

-----------------------

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 2


5. Täienda oma Pykkari programmikoodi nii, et robot sammuks seinani, pööraks ümber ja sammuks teise seinani, pööraks seal ümber ja sammuks veelkord tagasi.
(Vt Pykkari maailma käske - allpool



6. 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). 



7. Pane Pykkar koonust lükkama või koonust kandma.


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


-----------------------


Kodutööd


1. Püüa teha ä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:



LISAÜLESANNE:
Joonista kilpkonnaga "päike" - Tund 4 ülesanded 3 punkt 11.









Kommentaare ei ole:

Postita kommentaar