Tätä harjoitusta varten sinun pitää hankkia oppilaan oppilaan oppilas, mutta vasta loppuvaiheessa, kun olen opettanut sinut opettamaan Logoa opettamaan asioita. Valitse tarkoitukseen joku viaton koekaniini. Isä, äiti tai vastaava käy erinomaisesti.
Opettajat usein kyselevät asioita. (Vanhanaikaista kysymysten toistamiseen perustuvaa opetustapaa kutsutaan trilliksi.) Logo on helppoa saada kysymään jotain. Kokeile vaikka tätä:
? kysy [paljonko on 2 + 2?]
Kirjoita myös kysymykseen jokin vastaus. Myös vastauksen perään pitää painaa rivinvaihtoa eli enter-näppäintä, jotta Logo tietää, että olet kirjoittanut vastauksen loppuun. Jos vastaan "viisi tuhatta", saan tällaista näytölleni:
? kysy [paljonko on 2 + 2?] paljonko on 2 + 2? viisi tuhatta tulos on [viisi tuhatta], mutta mitä sillä tehdään?
Miksi Logo sanoo näin? Koska emme ole kertoneet sille, mitä vastauksella pitäisi tehdä.
Palaamme kohta siihen, mitä kaikkea vastauksella voi tehdä, mutta tehdään ensiksi niin, että vastaus vain heitetään roskakoriin. Tämän voi tehdä "muutenvaan"-komennolla. "muutenvaan"-komennon perään voi siis kirjoitella mitä tahansa, joka tuottaa jonkin tuloksen (kuten yhteenlasku tuottaa summan tai kysymys vastauksen), eikä se tee näillä tuloksilla mitään:
? muutenvaan 3 + 2 ? muutenvaan [olet hauska ihminen] ? muutenvaan kysy [paljonko on 2 + 2?] paljonko on 2 + 2? jotain ?
Nyt voimme tehdä pienen opetusohjelman:
? miten kysele > muutenvaan kysy [Milloin oli toinen maailmansota?] > sano [Hieno vastaus! Olet oikein taitava.] > valmis
Kokeillaanpa tätä opetusohjelmaa:
? kysele Milloin oli toinen maailmansota? joskus Hieno vastaus! Olet oikein taitava.
Kuten huomaat, Logo ei nyt tosin kiinnitä mitään huomiota siihen, mitä vastaat, mutta se sentään osaa olla kannustava, mikä saattaisi olla vaikeaa ihmisopettajalle vastaavassa tilanteessa. Koska sinä opetat Logoa opettamaan, sinä myös voit päättää, onko se oppilaalleen mukava vai inhottava:
? miten kysele.masentavasti > muutenvaan kysy [Mikä on Ruotsin kuninkaan nimi?] > sano [Ai jaa. Voisit yrittää edes vähän enemmän.] > valmis
Tietokoneet ovat hyviä toistamaan, joten ne on helppo laittaa tekemään trillejä:
? toista 10 [kysele kysele.masentavasti] Milloin oli toinen maailmansota? 094 Hieno vastaus! Olet oikein taitava. Mikä on Ruotsin kuninkaan nimi? Kalle Ai jaa. Voisit yrittää edes vähän enemmän. Milloin oli toinen maailmansota? en tiedä Hieno vastaus! Olet oikein taitava. Mikä on Ruotsin kuninkaan nimi? Kaarle Kustaa Ai jaa. Voisit yrittää edes vähän enemmän. ...
Noniin, hienoa, olemme tehneet kannustavia ja masentavia kyselyitä, mutta kunnon opettajahan myös kuuntelee (ainakin vähän), mitä oppilas vastaa. Kysy-komentohan tosiaan antaa meille myös vastauksen, jonka ohjelman käyttäjä kirjoittaa, ja sillä voimme tehdä kaikenlaista hauskaa. Käyttäjän kirjoittama vastaus on kysy-komennon tulos. Sitä voi vaikkapa vertailla oikeaan tai muuten vain haluamaamme tulokseen. Kokeile tätä:
? sano samatko kysy [2+2?] [4] 2+2? 4 joo ? sano samatko kysy [2+2?] [4] 2+2? noin 7 ei
Logo kertoo, onko vastauksesi kysymykseen "2+2?" sama kuin 4. Käytämme tässä "samatko"-komentoa, joka syö kaksi syötettä, vertailee niitä toisiinsa, ja komennon tuloksena on "joo", jos ne olivat samat, "ei" jos eivät olleet. (Seuraavassa teemassa tarkastellaan tarkemmin, mitä tarkoittaa, että komennolla on jokin "tulos".)
Jos haluat tehdä jotain sen perusteella, onko käyttäjän vastaus oikein vai ei, tarvitset "riippuen"-komentoa tai "onko"-komentoa. Kokeile seuraavaa:
? riippuen [samatko kysy [2+2:] [4]] [sano [jee!]] [sano [eikun 4]] 2+2: 22 eikun 4 ? riippuen [samatko kysy [2+2:] [4]] [sano [jee!]] [sano [eikun 4]] 2+2: 4 jee!
"riippuen"-komento ottaa kolme syötettä: yhden, joka on "joo" tai "ei", toisen, joka tehdään, jos ensimmäinen syöte oli "joo", ja kolmannen, joka tehdään, jos ensimmäinen syöte oli "ei". Nyt siis, kun "samatko"-komento laskee, oliko käyttäjän vastaus sama kuin 4, niin "riippuen"-komento sanoo joko "jee!" jos oli tai "eikun 4" jos ei ollut.
Jos olet kirjoittamassa määrittelyä, voit käyttää riippuen-komennon pidempää ja vähän selkeämpää muotoa, jossa on kolme osaa. Ensimmäisessä, "onko"-komennossa, kerrotaan, mitä pitäisi selvittää. Toisessa, "joson"-komennossa, määritetään, mitä tehdään, jos onko-komennon syöte oli "joo". Kolmannessa, "josei"-komennossa, puolestaan kerrotaan, mitä tehdään, jos onko-komennon syöte oli "ei". Tehdäänpä siis esimerkiksi tällainen kyselyohjelma:
? miten kysely2 > onko samatko kysy [Mikä on Ruotsin paavin nimi?] [ei mikään] > joson [sano [Kas vain, oletpa fiksu!]] > josei [sano [Tämä oli kompa, ei Ruotsissa ole paavia.]] > valmis
XXX TODO
Pikalinkit: