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
- Lisätään suodatinpaperi kutsumalla funktiota lisää_suodatinpaperi(suodatinpaperi). Pseudokoodi ei kerro tarkalleen, mitä funktio palauttaa, mutta oletettavasti se palauttaa päivitetyn suodatinpaperin määrän, kuten yhden lisätyn suodatinpaperin.
- 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, jonka ehto on tiputtaa_vettä(kahvi, kahvia_pannussa) == True. 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.
- 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. Ilman alkukutsua funktio alkaisi valintarakenteella, josta johtaisi prosessiin Pyöräile kouluun, mikä ei vastaa vuokaaviota.
