Tunti 13 Funktiot

Funktiot

Seuraavalla videolla tutustutaan funktioihin eli aliohjelmiin:



Funktio, eli aliohjelma on itsenäinen pikku ohjelma, jota voidaan kutsua tarvittaessa. Tällä tavalla ohjelmoinnissa säästetään aikaa ja vaivaa, kun jokaista ohjelmassa tapahtuvaa asiaa ei tarvitse erikseen ohjelmoida. Esimerkiksi meillä voisi olla ohjelma, joka laskee kahden luvun summan ja ilmoittaa tuloksen. Sitä käytettäisiin siis näin:

summa
(4, 12)

Tässä funktion nimeksi on annettu summa ja sen perässä näkyy olevan kaksi lukua, näitä lukuja sanotaan argumenteiksi, mutta niiden nimestä ei tarvitse tässä vaiheessa välittää. Eli funktiolle ikään kuin annetaan kaksi lukua ja sitten ohjelma palauttaa halutun arvon. Tässä tapauksessa summafunktio palauttaa tai tulostaa meille luvun 16 (koska 4 + 12 = 16). Mitä tuo "palauttaminen" sitten on? Siitä lisää myöhemmin. 

Miten funktioita sitten ohjelmoidaan? Alla on esimerkki funktiosta trinketillä tehtynä ja videolla käydään tarkemmin läpi funktion sisältöä. Katso miten molemmat trinketit toimivat ja kokeile saisitko muokattua ohjelmaa siten, että se laskisi kolmen annetun luvun summan? Katso samalla, kumpi alla olevista trinketeistä tulostaa meille luvun ja kumpi palauttaa luvun, Esimerkki 1 vai 2?

* Esimerkki 1.* Tulostaako vai palauttaako alla oleva ohjelma?


* Esimerkki 2.*
Tulostaako vai palauttaako alla oleva ohjelma?


Funktion muodostaminen

Jos katselet yllä olevaa koodia, huomaat että funktio alkaa kirjanyhdistelmällä def. Se onkin funktion muodostamisen alkukäsky. Tämän jälkeen funktiolle keksitään nimi. Nimessä ei saa olla ääkkösiä. Tämän jälkeen tulevat sulut, joiden sisään laitetaan arvoja. Jos funktiolle ei viedä mitään arvoja, sulkujen sisälle ei tule mitään. Huomaa, että sulut kirjoitetaan ilman välilyöntiä funktion nimen perään. Alla esimerkki funktiosta, joka vain tulostaa. 

* Esimerkki 3.*
Funktio, jonka tehtävä on tulostaa.


* Esimerkki 4.*
Esimerkki funktiosta, jolle viedään jokin arvo. Osaatko selvittää mitä funktio tekee?



<> Tehtävä 1. Kirjoita funktio, joka tulostaa sille annetun sanan. Ohjelma on kirjoitettu melkein valmiiksi.


<> Tehtävä 2. Kirjoita funktio joka tulostaa kolmeen kertaan sille annetun sanan. Saatko sen tekemään niin, että se tulostaa sanat a) allekkain b) peräkkäin?


<> Tehtävä 3. Kirjoita funktio, joka tulostaa funktiolle annetun luvun neliön. Pohja on kirjoitettu valmiiksi.