Scratch

Jos-valintalause

Scratchissa jos-valintalause löytyy Ohjaus-ryhmästä.

Jos-valintalauseeseen lisäksi tarvitaan ehtoja, ne löytyvät Toiminnot-ryhmästä.

Mikäli jos -valintalauseen ehto pitää paikkansa, niin silloin suoritetaan ne komennot, joka ovat jos-valintalauseen sisäpuolella. Jos ehto ei toteudu, niin silloin ei tehdä mitään. Tutkitaan esimerkin avulla, kuinka jos-valintalause rakennetaan.

Esimerkki: Positiivinen ja negatiivinen luku

Tutkitaan, onko luku positiivinen tai negatiivinen.

  1. Aluksi tarvitaan tapahtuma, joka käynnistää ohjelman. Nostetaan hiirellä raahaamalla Tapahtumat -ryhmästä komento: kun klikataan, koodausikkunaan.
  2. Mennään seuraavaksi Tieto-ryhmään. Luodaan muuttuja nimeltään Luku napsauttamalla: Tee muuttuja – painiketta.
  3. Lisätään Tieto –ryhmästä komento: aseta luku arvoon 0. Muuta 0:n tilalle haluamasi luku.
  4. Lisäämme, nyt Ohjaus-ryhmästä valintalauseen: Jos, niin.
  5. Valintalauseen sisälle tarvitsemme ehdon. Ehdot löytyvät Toiminnot-ryhmästä. Lisätään valintalauseen syöttökenttään ehto: suurempi kuin.
  6. Ehdossa verrataan muuttujaa ja lukuarvoa keskenään. Nostamme ensimmäiseen tyhjään syöttökenttään luku-muuttujan Tieto-ryhmästä, ja toiseen tyhjään syöttökenttään kirjoitamme luvun nolla. Olemme saaneet aikaiseksi ehdon: Jos luku on suurempi kuin nolla, niin tee jotain.
  7. Haluamme, että ohjelma sanoo kommentin. Lisätään Ulkonäkö-ryhmästä komennon: sano Hello! 2 sekunnin ajan. Muutetaan Hello! sanan tilalle teksti: Luku on positiivinen.
  8. Tehdään samalla tavalla ehdot myös muille tapauksille: jos luku on pienempi kuin nolla ja jos luku on yhtä suuri kuin nolla. Ohjelma on valmis.

Muuta luku-muuttujan arvoa ja suorita ohjelma. Ohjelman tulostus on seuraavanlainen.

Jos-muuten -valintalause

Jos-ehtolauseesta löytyy myös variaatio eli jos-muuten -ehtolause.

Idea tässä on se, että jos ehto pitää paikkansa, niin suoritetaan ensimmäisen lohkon sisäpuolella olevat komennot. Mikäli ehto ei pidä paikkansa, niin silloin suoritetaan toisen lohkon sisäpuolella olevat komennot.

Esimerkiksi voimme tehdä ohjelman, joka tutkii, onko luku positiivinen.



Eli jos luku on suurempi kuin nolla, niin tulosta teksti: Luku on positiivinen, muutoin tulosta teksti: luku on negatiivinen. Ongelma tässä rakenteessa on luku nolla, koska nyt luku nolla on luokiteltu negatiiviseksi. Ongelman voi ratkaista käyttämällä kahta sisäkkäistä jos-muuten -ehtolausetta. Tätä kutsutaan ehtojen ketjuttamiseksi.

Esimerkki: Viikonpäivä

Tehdään ohjelma, joka tutkii mikä viikonpäivä. Tulostus tapahtuu seuraavasti:



Valmis ohjelma näyttää tältä.



Tässä rakenteessa on se hyvä puoli, että jos päivä-muuttuja saa arvoksi jotain muuta kuin viikonpäivän, niin kaikissa tapauksissa tulostuu kommentti: Ei ole viikonpäivä.

Esimerkki: ABC-tietovisa

Tuo kolme hahmoa lisää kirjastosta. Nämä hahmot ovat A, B ja C kirjaimet.



Perusta aluksi Tieto-ryhmässä vastaus niminen muuttuja. Valitse ensin hahmo, joka kysyy kysymyksen tietovisassa. Esimerkiksi tässä se on Scratch kissa ja rakenna siihen seuraava koodi.




Idea on tässä koodissa se, että alussa vastaus muuttuja saa arvon nolla. Seuraavaksi hahmo kysyy tietovisa kysymyksen. Seuraavaksi lisätään ohjausrakenne: odota kunnes. Kun tähän laitetaan ehto: vastaus on suurempi kuin nolla, niin se toimii vastauksen tarkistuksen aloituskomentona. Lopuksi tarvitaan vielä jos – muuten ehtolause, joka tarkistaa mikä vaihtoehdoista on oikein ja kommentit sen mukaan.

Mutta ohjelma ei ole vielä ihan valmis. Tämän lisäksi tarvitsemme vielä ohjelmoida, jokainen kirjain erikseen. Valitaan A-kirjain aktiiviseksi ja lisätään siihen Tapahtumat-ryhmästä komento: kun tätä hahmoa klikataan. Jonka jälkeen asetamme muuttujalle arvon 1.



B-kirjain ohjelmoidaan samalla tavalla, paitsi että vastaus-muuttuja saa arvon 2.



Lisätään myös sama koodi C-kirjaimeen ja laitetaan vastaus-muuttuja arvoon 3.



Nyt ohjelma on valmis ja voit testata sen. Kuten huomaat, napsauttamalla hiirellä kirjainta saadaan muuttujan arvo muutettua suuremmaksi kuin nolla, jolloin ohjelman suoritus jatkuu. Ehtolauseella voimme tarkistaa, oliko vastaus eli hiirellä napsautus oikea.

Useampi ehto samaan aikaan

Seuraavilla komennoilla voimme yhdistää ehtoja seuraavasti.



Esimerkiksi voimme rakentaa ehdot.



Esimerkiksi ehto: luku-muuttuja on suurempi tai yhtä suuri kuin nolla rakennetaan osista seuraavasti.

Esimerkki: Mikä on Suomen pääkaupunki?

Tehdään ohjelma, joka kysyy: Mikä on Suomen pääkaupunki. Ohjelma huomioi vastauksessa sen, että vastaus voidaan kirjoittaa sekä pienellä tai isolla alkukirjaimella.



Ohjelman suoritus näyttää tältä.



Huomio: Scratch hyväksyy sekä pienellä, että isolla kirjoitetut tekstit. Joten käytännössä tämä ehto ei ole välttämätön. Tämä esimerkki lähinnä havainnollisti tai-lausetta. Tai-lauseessa riittää kun vain toinen ehdoista täyttyy.

Esimerkki: Suurempi ja pienempi kuin

Tehdään ohjelma, joka tutkii, onko annettu luku välillä 2...6.

Ehto: luku on suurempi tai yhtä suuri kuin kaksi, rakennetaan seuraavalla tavalla.


Vastaavasti ehto: luku on pienempi tai yhtä suuri kuin kuusi, rakennetaan seuraavasti.



Kun nämä kaksi ehtoa yhdistetään ja-ehtoon, niin saamme ehdon, jossa luvut ovat halutulla välillä.



Kokonainen ohjelma näyttää tältä.



Ohjelman suoritus on seuraavanlainen.

Esimerkki: Pienempi tai suurempi kuin

Tehdään ohjelma, jossa tutkitaan, onko luku on pienempi kuin 2 tai onko luku suurempi kuin 6.

Ohjelman koodi on seuraava.


Tässä ohjelmassa ehto menee päinvastoin kuin edellisessä, siksi myös kommentit vaihtavat paikkaa keskenään.

Hiiren ohjelmointi

Hiiren ohjelmoimiseen Scratchissa on käytössä seuraavat komennot. Komennot löytyvät Tuntoaisti-ryhmästä.



Esimerkki: Hahmon liikuttelu hiiren avulla

Hahmo saadaan liikkumaan hiiren liikkeiden mukana seuraavalla ohjelmalla.



Yksinkertaisesti kun hiiren sijaintia kuvaavat komennot laitetaan komennon: mene kohtaan x: y: syöttökenttien sisälle, niin valittu hahmo liikkuu siihen missä hiiri on. Tämä komento pitää laittaa ikuisesti silmukan sisälle, niin hahmon paikkaa päivitetään jatkuvasti.

Esimerkki: Oma piirto-ohjelma

Kun laitamme komennon: onko hiiren nappi painettu? jos-muuten lauseen ehtoon, niin voimme liikutella hahmoa vain silloin kun hiiren vasen tai oikea painike on pohjassa. Lisäämällä vielä kynä komennot mukaan saamme aikaiseksi piirustus-ohjelman.

Ehto on muotoa: Jos hiiren painike on pohjassa, silloin mene sinne, minne hiirikin menee ja laske kynä alas. Tällöin piirtäminen alkaa. Jos ehto ei ole voimassa eli hiiren painike ei ole pohjassa, niin lopeta piirtäminen nostamalla kynä ylös.

Oman piirto-ohjelman koodi on seuraava.



Vinkki: Piilota hahmo piirtämisen ajaksi, niin piirtäminen on helpompaa. Valikon saat esille painamalla hiiren oikeaa painiketta hahmon päällä Hahmot-ikkunssa.