Vertailu- ja loogiset operaattorit
Vertailu- ja loogiset operaattorit
Kuten todettua, ohjelmoinnissa voidaan valvoa lukemattomia erilaisia ehtoja. Olemme kuitenkin tähän asti suorittaneet vain erilaisia näppäimien painamisen tarkistuksia. Tässä luvussa laajennamme edellisessä luvussa karruttamaamme ymmärrystä ehtolauseista. Opettelemme erityisesti, miten luomme entistä monipuolisempia ehtoja ohjelmiemme tarkastettavaksi. Lisäksi kertaamme jo opittua. Luvun lopussa toteutamme jälleen yksinkertaisen pelin tuliterillä taidoillamme.
Uudenlaisten ehtojen osalta tutkimme, miten asioita voi ohjelmoidessa vertailla keskenään. Perehdymme myös siihen, miten ehtoja voi yhdistellä keskenään entistä monimutkaisemmiksi ja miten ohjelmoinnissa voi tarkastaa, jos jokin ehto ei käy toteen. Tähän kaikkeen meitä auttavat työkalut nimeltä operaattorit.
Vertailun vuoksi
Ohjelmoinnissa kenties yleisimmät tarkistettavat ehdot perustuvat vertailuoperaattoreihin. Vertailuoperaattorit ovat matematiikasta tuttuja symboleita. Niihin lukeutuvat muun muassa yhtä suuri kuin (=), suurempi kuin (>) japienempi kuin (<). Nämä ovat myös vertailuoperaattorit, joita Scratchissa voimme hyödyntää.
Testataan yhtä näistä operaattoreista. Valitaan Toiminnot-valikon alta n > n -ehtopalikka ja raahataan se oikealle. Katso kuvasta apua.

Operaattorin molemmin puolin sijaitseviin tyhjiin koloihin sijoitetaan arvot, joita suurempi kuin -operaattori vertailee keskenään. Näitä vertailtavia arvoja kutsutaan operandeiksi. Klikkaa n > n -palikan jälkimmäistä tyhjää koloa ja kirjoita siihen operandiksi luku nolla. Ensimmäiseen tyhjään koloon puolestaan vie operandiksi Liike-valikon alta löytyvä y-sijainti-palikka. Katso mallia animaatiosta.
Vie y-sijainti-palikka suurempi kuin -operaation ensimmäiseksi operandiksi.
Nyt olemme luoneet ehdon, joka on tosi, kun kissan sijainti pystysuunnassa eli y-suunnassa on suurempi kuin nolla. Kissan y-sijainti vastaa nimittäin sen sijaintia pystysuunnassa ja x-sijainti sen sijaintia vaakasuunnassa, aivan kuten matemaattisessa koordinaatistossa! Kissalle piste nolla sijaitsee puolestaan alueen keskellä sekä pysty- että vaakasuunnassa. Luomamme ehto on siis tosi, kun kissa sijaitsee alueen ylemmällä puoliskolla. Kun kissan y-sijainti on puolestaan pienempi kuin nolla eli se on asetettu alueen alempaan puoliskoon, ehtomme on epätosi.
Varmistetaan ehdon toimivuus asettamalle se osaksi ehtolauseen sisältävää ohjelmaa. Käytetään jos x, sitten -ehtopalikkaa, ja viedään sen sisään Liike-valikon alta löytyvä aseta y:lle arvo 0 -ohjepalikka. Tämä palikka käskee kissaa liikkumaan pystysuunnassa pisteeseen 0 eli alueensa puoliväliin. Katso kuvasta mallia ja testaa ohjelmaa sijoittamalla kissa ensin alueen yläosaan ja sitten alueen alaosaan.

Ohjelma, jossa käytetään suurempi kuin -operaattoria.
Kuten tässä vaiheessa olet luultavasti huomannut, kun kissa aloittaa ruudun yläosasta, ohjelmamme siirtää sen välittömästi alueen keskelle. Tällöin luomamme ehto täyttyy eli sen totuusarvo on tosi, joten ohje ”aseta y:lle arvo 0” suoritetaan. Kun kissa puolestaan aloittaa ruudun alaosasta, se ei liiku mihinkään. Tällöin luomamme ehto jää täyttymättä eli sen totuusarvo on epätosi. Ohjetta ”aseta y:lle arvo 0” ei siis suoriteta.