Pseudokoodit – vaikeat tehtävät
Koodin vasemmalla puolella olevat numerot kuvastavat rivejä.
Tehtävä 1. Mitä tapahtuu pseudokoodissa? Selitä vastaus riveittäin.
1. funktio kahvin_keittäminen():
2. suodatinpaperi = 0
3. kahvi = 0
4. tarvittava_määrä = 5
5. kahvinkeitin_käynnissä = Epätosi
6. kahvia_pannussa = 0
7.
8. suodatinpaperi = lisää_suodatinpaperi(suodatinpaperi)
9.
10. niin kauan kuin kahvi < tarvittava_määrä:
11. kahvi = lisää_kahvia(kahvi)
12.
13. kahvinkeitin_käynnissä = Tosi
14.
15. jos kahvinkeitin_käynnissä == Tosi:
16. niin kauan kuin tiputtaa_vettä(kahvi,kahvia_pannussa) == Tosi:
17. kahvia_pannussa= kahvia_pannussa + 1
18.
19. palauta kahvia_pannussa

- Määritellään funktio kahvin_keittäminen()
- Alustetaan muuttuja suodatinpaperi arvoon nolla, koska sitä olla vielä lisätty.
- Alustetaan muuttuja kahvi nollaksi, koska kahvia ei ole vielä laitettu suodattimeen.
- Määritellään tarvittava määrä kahvia (5), jotta voidaan tarkistaa, onko kahvia tarpeeksi.
- Alustetaan kahvinkeitin_käynnissä arvoon False, koska keitin ei ole vielä käynnissä.
- Alustetaan muuttuja kahvia_pannussa arvoon 0, koska pannussa ei ole vielä kahvia.
- Tyhjä rivi
- Suodatinpaperi lisätään kutsumalla funktiota lisää_suodatinpaperi(suodatinpaperi). Pseudokoodi ei kerro tarkasti, mitä kyseinen funktio palauttaa, mutta oletettavasti se palauttaa päivitetyn suodatinpaperien määrän, esimerkiksi yhden lisätyn suodatinpaperin. Muuttuja suodatinpaperi välitetään funktiolle parametrina, ja funktion palauttama arvo ylikirjoittaa funktion alussa alustetun arvon eli rivin kaksi.
- Tyhjä rivi
- While‑silmukka: niin kauan kuin kahvia on vähemmän kuin tarvittava määrä
- Lisätään kahvia kutsumalla funktiota lisää_kahvia(kahvi), joka palauttaa uuden kahvin määrän.
- Tyhjä rivi
- Käynnistetään kahvinkeitin asettamalla kahvinkeitin_käynnissä = True.
- Tyhjä rivi
- Tarkistetaan ehto: jos kahvinkeitin on käynnissä,
- ajetaan while‑silmukkaa niin kauan kuin tiputtaa_vettä‑funktio palauttaa arvon True (tosi). Pseudokoodi ei kuvaa funktion tiputtaa_vettä sisäistä toimintaa, mutta sen voidaan päätellä palauttavan tilanteen mukaan joko arvon True tai False. Kun funktio palauttaa arvon False (esimerkiksi kahvin loputtua tai pannun ollessa täynnä), silmukka päättyy.
- While‑silmukan sisällä muuttujaan kahvia_pannussa-muuttujaan lisätään yksi. Tämän muuttujan on tarkoitus kuvata kahvinkeittimen tippumista.
- Tyhjä rivi
- Palautetaan muuttuja kahvia_pannussa, joka kertoo lopullisen kahvin määrän pannussa.
Tehtävä 2. Tee vuokaaviosta suomenkielinen pseudokoodi käyttäen funktioita.

Voit kuvata vuokaavion prosessivaiheita kuvitteellisilla funktioilla, esim.
- pyöräilemällä_kouluun() (koko vuokaavion funktio)
- pyöräile_kouluun()
- saavuitko_kouluun()
- lukitse_pyörä()
Valinta- symbolin Kyllä / Ei vastaa koodeissa booleaneja Tosi / Epätosi, mitkä ovat englanniksi True / False
1. funktio pyöräilemällä_kouluun():
2.
3. pyöräile_kouluun()
4.
5. niin kauan kuin saavuitko_kouluun() == Epätosi:
6. pyöräile_kouluun()
7.
8. lukitse_pyörä()

Ilmaus “niin kauan kuin” vastaa pseudokoodissa while‑silmukkaa.
Yleisimmät virheet:
Vuokaavio edellyttää while‑silmukkaa, koska if/else‑rakenne ei palaa takaisin alkuun.
Alkukutsu pyöräile_kouluun() puuttuu ennen while‑silmukkaa. Vuokaavion mukaan pyöräilyn tulee tapahtua vähintään kerran ennen ehdon tarkistamista. Muuten vuokaavio alkaisi valintarakenteella, joka johtaisi prosessiin Pyöräile kouluun.
