
Funktiot (ohjelmointi)

Hanki lisää sisältöä päivittämällä
True or false? A function is like a small program inside our big program.
Lina on ohjelmoinut useita lyhyitä ohjelmia hänen robottiinsa. Nyt hän haluaa yhdistää kaksi näistä suuremmaksi ohjelmaksi. Linan niputtama pseudokoodi näistä kahdesta ohjelmasta näyttää tältä: On monia rivejä komentoja. Lina rullailee koodia ylös ja alas... Hän löytää kolme riviä komentoja, jotka toistuvat useita kertoja.
Onko se tarpeellista? Autetaan häntä, jotta komentoja tarvitaan vain yhdessä paikassa. Tällaiset kolmen komennon rivit löytyvät kahdesta paikasta. Kirjoitetaan samat kolme komentoa pseudokoodin alkuun. Aiomme suureen ohjelmaamme pienen ohjelman, funktion.
Käytämme funktiota kutsumalla sitä. Sitten funktio tarvitsee nimen, jotta tiedämme kutsuvamme oikeaa funktiota. Nimeämme sen "start". Ja laitamme kaksi sulkua nimen jälkeen. Sulut näyttävät, että se on funktio.
Haluamme tehdä pseudokoodista selkeämmän. Teemme tämän sisentämällä funktioon liittyvät rivit. Nyt kutsumme tätä start-funktiota. Tässä.. ja tässä..
kirjoittamalla "kutsu start" ja kaksi sulkua. Käyttäessämme funktioita, ei tarvitse kirjoittaa samoja komentoja monta kertaa Pseudokoodista tulee helpompi käyttää koska jokainen funktion kutsu suorittaa useita komentoja. Lyhyen ohjelmiston virheenetsintä on myös helpompaa kuin pitkän monella rivillä. Ja jos haluamme tehdä muutoksen, tarvitsemme sen vain yhteen paikkaan. Olemme korvanneet kaksi koodiryhmää kahdella funktiokutsulla.
Nyt Lina on halukas muuttamaan suuremman osan koodistaan funktioiksi. Näetkö vielä lisää komentoriviryhmiä, jotka toistuvat? Tässä on kolme muuta komentoa, jotka toistuvat kahdessa paikassa. Ehkä voit auttaa häntä?