Teoria

Kirjoittaja: Veera Hasala ( veera.m.hasala@student.jyu.fi )

KEOSissa on esitelty seuraavat asiat (suluissa luokat, joille aihealueen opettaminen sopii hyvin):
  • Totuusarvo (1-6)
  • Ehtolause (1-6)
  • Muuttuja (3-6)
  • Silmukka (3-6)
  • Luokka (7-9)
  • Olio (7-9)
Totuusarvo

Jotkin asiat ovat joko tosia (true) tai epätosia (false). Kuvitellaan, että meillä on punainen kumipallo. Siitä voisi keksiä seuraavanlaisia väittämiä, jotka ovat joko tosia tai epätosia:

Se on punainen. Tosi
Se on sininen. Epätosi
Se on pyöreä. Tosi
Se on neliskulmainen. Epätosi
Se on valmistettu metallista. Epätosi
Se on valmistettu kumista. Tosi

Samanlaisen arvon voi antaa myös abstrakteillekin asioille. Onko kahvi loppunut? Tosi vai epätosi. Onko käyttäjä opettaja? Tosi vai epätosi. Onko kesäloma alkanut? Tosi vai epätosi.

Ehtolause

Usein halutaan tehdä jotain sen perusteella, miten jokin asia on. Tällöin voidaan käyttää ehtolausetta. Esimerkiksi:

Jos ulkona sataa
->ota sateenvarjo

Ehtolauseissa voidaan hyvin käyttää myös totuusarvoja, ja tarvittaessa myös kertoa vaihtoehto ehdolle.

Jos kahvi loppunut == tosi
->keitä kahvia
Muutoin
->juo kahvia

Tai vaikkapa sisäkkäisiä ehtolauseita:

Jos tiskejä ei ole tiskattu == tosi
->tiskaa
Muutoin
->Jos pyykkejä ei ole pesty == tosi
-->pese pyykit
->Muutoin
-->rentoudu

Ehtolauseissa usein esiintyy myös JA ja TAI -ilmaisuja. Näillä voi olla suurtakin merkitystä, pohdi esimerkiksi seuraavien eroa:

Jos tiskit on tiskattu == tosi TAI pyykit on pesty == tosi
->rentoudu

Jos tiskit on tiskattu == tosi JA pyykit on pesty == tosi
->rentoudu

Mitäköhän ensimmäisessä tapauksessa kävisi pyykeille tai tiskeille? Voisi jäädä jompikumpi hoitamatta...

Muuttuja

Muuttuja on symboli, jolla on joku arvo. Muuttujien hyödyntäminen helpottaa uudelleenkäytettävyyttä ja ylläpidettävyyttä. Seuraava teksti ei ole kovin uudelleenkäytettävä:

Hei Erkki!
Mitä sinulle Erkki kuuluu?
Toivon mukaan sinulla Erkki on kaikki hyvin.
Nähdään Erkki sitten pian.

Jos tekstiä haluttaisiin käyttää uudelleen jonkun muun kanssa, nimi pitäisi vaihtaa aika moneen kohtaan. Mutta kun tilannesidonnaisen nimen tilalle vaihdetaan muuttuja jonka arvo asetetaan vain yhdessä paikassa, tekstin muokkaus onnistuu hetkessä:

nimi = [laita nimi tähän]

Hei nimi!
Mitä sinulle nimi kuuluu?
Toivon mukaan sinulla nimi on kaikki hyvin.
Nähdään nimi sitten pian.

Muuttujia on erilaisia. Muuttuja voi esimerkiksi olla merkkijono (kuten ylläoleva nimi), numero tai totuusarvo (tulee alla). Näitä käsitellään lisää seuraavassa osiossa.
Muuttujan voi selittää pienemmille laatikoiden avulla. Piirretään taululle laatikoita. Jokaiseen laatikkoon mahtuu vain yksi asia. Kun laatikkoon laitetaan seuraava asia, edellinen putoaa siitä ulos.

Silmukka

Silmukka sen sijaan toistaa tietyn asian monta kertaa. Kuvitellaan, että meillä on viisi perunaa jotka pitää kuoria. Kuorimisen voisi ohjeistaa seuraavasti:

kuori peruna
kuori peruna
kuori peruna
kuori peruna
kuori peruna

Mutta ehkä helpommin asian voisi ohjeistaa näin:

Toista 5 kertaa:
kuori peruna

Useissa ohjelmointikielissä voi myös ilmaista asian jotenkin näin:

Toista kunnes perunat loppuvat:
kuori peruna

Luokka

Oikeastaan melkein mitä tahansa asioita voidaan määritellä luokan kautta. Luokka tarjoaa raamit jonkin asian ominaisuuksille. Luokkia voisivat esimerkiksi olla huonekalu, kulkuneuvo ja käyttäjä.
Luokan ominaisuudet ovat varsin yleisiä. Määritellään vaikkapa, että huonekalulla on nimi, jalkojen määrä, materiaali ja väri. Kulkuneuvolla on myöskin nimi, renkaiden määrä, ja vaikkapa tieto siitä, kulkeeko kyseinen kulkuneuvo bensalla. Käyttäjällä taas voi olla esimerkiksi sellaisia tietoja kuin käyttäjätunnus, salasana, sähköposti ja syntymäpäivä.

Olio

Olio on luokan varsinainen edustaja. Luokan huonekalu pohjalta luodut oliot voisivat näyttää vaikka tältä:

nimi: tuoli
jalkojen määrä: 4
materiaali: puu
väri: ruskea

nimi: sohva
jalkojen määrä: 6
materiaali: nahka
väri: musta

Luokan kulkuneuvo pohjalta voisi luoda vaikka seuraavanlaisia olioita:

nimi: pyörä
renkaiden määrä: 2
kulkee bensalla: epätosi

nimi: auto
renkaiden määrä: 4
kulkee bensalla: tosi

Esimerkki käyttäjän pohjalta luodusta oliosta:

käyttäjätunnus: erkkinen
salasana: salasana123
sähköposti: erkki.erkkinen@jokumail.com
syntymäpäivä: 1980-12-24