Close menu
Close menu

Tunnistaudu

Kirjaudu

Etkö ole vielä jäsen?

Liity jäseneksi

1.14 Aliohjelma

1.14 Pääohjelma ja aliohjelma, def

Useinkaan ei ole järkevää yrittää kirjoittaa kaikkea koodia pääohjelmaksi. Koodista tulee vaikealukuista, muuttujia tulee paljon ja käskyjä joudutaan toistamaan. Mikäli ohjelma sisältää keskenään samantapaisia kohtia useamman, kannattaa toistuvat osat kirjottaa erillisisiksi metodeiksi eli aliohjelmiksi. Pääohjelmassa kutsutaan aliohjelmaa nimellä, jolloin aliohjelma suoritetaan. Aliohjelma suorittamisen jälkeen pääohjelmaa jatketaan aliohjelman kutsumista seuraavalta riviltä. Python kielessä aliohjelmat kirjoitetaan ennen pääohjelmaa. Aliohjelma muodostetaan def-komennon avulla. Aliohjelman ylin rivi antaa aliohjelmalle nimen. Mikäli aliohjelma tarvitsee jotakin ulkopuolista tietoa toimiakseen, se kirjotetaan sulkujen sisään. Ensimmäinen rivi päättyy kaksoispisteeseen, ja aliohjelman varsinainen toiminta kirjoitetaan sisennettynä.

Esimerkki tulosta5risuaitaa()-nimisestä aliohjelmasta, joka tulostaa risuaitoja. Aliohjelma ei tarvitse ulkopuolista tietoa, joten sulkuihin ei kirjoiteta mitään:

1.14.1 aliohjelma esimerkki 1.png

Esimerkki tulostaXprosenttimerkkia(kpl)-nimisestä aliohjelmasta, joka tulostaa käyttäjän valitseman määrän prosenttimerkkejä. Määrä (kpl) kirjoitetaan sulkujen sisään:

1.14.2 aliohjelma esimerkki 2.png

Esimerkki tulostaSananKirjaimet(jokuSana)-nimisestä aliohjelmasta, joka tulostaa parametriksi annetun sanan kirjaimet yksi kerrallaan.

1.14.3 aliohjelma esimerkki 3.png

Kun edelliset aliohjelmat kirjoitetaan editoriin ja ohjelman ajaa, ei tapahdu vielä mitään. Aliohjelmia pitää erikseen kutsua.

Esimerkki, jossa on kirjoitettu kolme aliohjelmaa, jonka jälkeen niitä kutsutaan vuorotellen:

1.14.4 aliohjelmat ja kutsut.png

Tuloste:

1.14.5 tuloste.png

Edelliset esimerkit aliohjelmista eivät tuottaneet lainkaan paluuarvoa, vaan ainoastaan tulostivat jotakin. Paluuarvo saadaan return-komennolla. Esimerkki paluuarvon tuottavista aliohjelmasta ja niiden kutsumisesta:

1.14.6 aliohjelmat esimerkki 4.png

Harjoituksia aliohjelmista:

1. Kirjoita seuraavat aliohjelmat editoriin:

1.14.7 harjoitus 1 esimerkkikoodi.png

ja kutsu niitä sellaisessa järjestyksessä, että toimintaikkunaan tulostuu

1.14.8 harjoitus 1 esimerkkituloste.png

2. Kirjoita seuraavat aliohjelmat ja niiden kutsut editoriin

1.14.9 harjoitus 2 esimerkkikoodi.png

Kutsut ovat menneet hieman väärin. Korjaa kutsuja siten, että toimintaikkunaan tulostuu luku 12.

3. Kirjoita aliohjelma, jonka nimi on tervehdys(), ja joka antaa paluuarvoksi sanan ’Heippa’ (Älä käytä print-käskyä, vaan return-komentoa).

4. Kirjoita aliohjelma, jonka nimi on nimiTervehdys(nimi). Ohjelmalle annetaan parametriksi nimi, ja ohjelma antaa paluuarvoksi lauseen ’Heippa ”nimi”’. Kirjoita aliohjelma siten, että sana ”Heippa” kutsutaan aliohjelmalta tervehdys().

5. Kirjoita aliohjelma, jonka nimi on kysyNimiJaTervehdi(). Ohjelma ei tarvitse parametria, sillä se kysyy käyttäjän nimeä, ja tulostaa lauseen ’Heippa, ”nimi”’.

6. Kutsu aliohjelmaa kysyNimiJaTervehdi(). Jos olet rakentanut tehtävien 3-5 aliohjelmat oikein, ohjelma kysyy nimeäsi ja tervehtii sinua.

Ratkaisut:

1.14.10 ratkaisut.png