Esmaspäev, 9. november 2015

Muutujad

Selleks, et programm saaks sisestatud andmeid (kasutaja vastus, mõni välja arvutatud tulemus) ka edaspidi kasutada, tuleb kasutusele võtta muutujad.


Muutuja on nimega varustatud koht arvuti mälus, kuhu saab salvestada mingi väärtuse, näiteks arvu, teksti jms. Seda väärtust saab programm edaspidi kasutada, näiteks kuvab kogutud punktid, arvutab uue väärtuse või käivitab järgmise protsessi (kui muutuja väärtus saab võrdseks mingi muu väärtusega).
Muutujate lisamiseks Scratchis tuleb klõpsata nupul "Andmed" ning edasi "Loo muutuja".
Selleks, et muutujat saaks programmis edasi kasutada, tuleb anda talle nimi. Nime andmisel on üldine reegel (kehtib ka teistes programmeerimiskeeltes), et muutuja nimi peab koosnema ühest tähest või tähtede ja numbrite jadast, mis peab algama tähega. Nimes ei tohi olla tähtedest ja numbritest erinevaid märke (tehtemärgid, kirjavahemärgid, sulud jmt), välja arvatud allkriipsud. Nimes ei tohi olla ka tühikuid.

Peale muutuja lisamist tekivad "Andmed" jaotuse alla lisaplokid, mida saab programmi tegemisel kasutada.
Muutujate loomise juures on valikud:
  1. Kõikide spraitide jaoks - muutujat saavad kasutada kõik programmi spraidid ja lava ehk muutuja muutumist saab kasutada kõikide nende skriptides. Selliseid muutujaid nimetatakse globaalseteks muutujateks.
  2. Ainult selle spraidi jaoks - muutujat saab programmis kasutada ainult see sprait, mis oli muutuja loomise hetkel valitud. Teiste spraitide ja lava jaoks ei ole see muutuja kättesaadav. Selliseid muutujaid nimetatakse lokaalseteks muutujateks.
Ülesanne 1.
Jätkame eelmisel tunnil tehtud projekti (kes puudus või kes soovib, võib aluseks võtta ka õpetaja projekti, selleks klõpsake linki http://scratch.mit.edu/studios/649890/ ja valige projekt parooli_kysimine, avage ning klõpsake nuppu "Vaata seespoolt").

1. Lisage globaalne muutuja (kõikide spraitide jaoks) nimega punktid
2. Täienda programmi nii, et peale õige parooli sisestamist küsib tegelane kasutajalt kolm matemaatikatehet, millele peab õigesti vastama. 
3. Õige vastus kasvatab punktisummat 1 võrra, vale vastus vähendab punkte 1 võrra (ehk kasvatab -1 võrra punktisummat). 
4. Kui 3 punkti on kogutud, siis vahetub lava ning vastaja pääseb edasi teisele "levelile".


Ülesanne 2.
Täienda oma programmi nii, et kasutaja käest küsitakse iga kord ERINEVATE ARVUDEGA matemaatikatehteid! Selleks pead lisama kaks uut muutujat, näiteks a ja b ning kasutama juhuarvu.

Spikker