Funktio, joka palauttaa arvon
Jos aliohjelma laskee laskuja, niin voisiko aliohjelma palauttaa laskemansa arvon takaisin pääohjelmaan? Kyllä voi. Tämä johtaa funktioon eli aliohjelmaan, joka palauttaa jonkin arvon. Palautetun arvon voimme sijoittaa esimerkiksi muuttujalle pääohjelmassa. Arvon palauttaminen aliohjelmassa tapahtuu return komennolla. Funktio, joka palauttaa jonkin arvon voidaan määritellä yleisesti.
tietotyyppi aliohjelman nimi (aliohjelmaan välitettävät muuttujat) {
Komennot;
return muuttuja;
}
Huomaa, että palauttavassa funktiossa ei käytetä void määrettä, vaan funktion eteen lisätään tietotyyppi. Käytännössä funktion tietotyyppi on sama kuin palautettavan muuttujan tietotyyppi. Esimerkiksi funktio, joka laskee suorakulmion pinta-alan, voidaan kirjoittaa seuraavasti.
- Pääohjelmassa kutsutaan aliohjelmaa nimeltä: pinta_ala(6,8);
- Aliohjelmassa muuttuja a saa arvon 6 ja muuttuja b saa arvon 8.
- Aliohjelma laskee paikalliselle muuttujalle: ala, arvon 6*8 = 48.
- Aliohjelma palauttaa takaisin pääohjelmalle aliohjelman ala-muuttujan arvon, joka on 48.
- Pääohjelmassa on oma paikallinen muuttuja ala, joka saa arvokseen aliohjelman palauttaman arvon eli 48. Huomaa, että voit käyttää aliohjelmassa ja pääohjelmassa samannimisiä muuttujia, koska muuttujat ovat paikallisia.
- Tämän jälkeen pääohjelman suoritus jatkuu ja voit vaikka tulostaa muuttujien arvot.
Kokonainen ohjelma voisi olla esimerkiksi seuraavanlainen
|
// Ohjelman tehnyt e-Oppi Oy
// 30.8.2017
void setup () {
size(600,200); // ikkunan koko
background(255); // Taustaväri valkoinen
textSize(30); // Tekstin koko
fill(0); // Tekstin väri
}
void draw() {
int kanta = 6;
int korkeus = 8;
int ala = pinta_ala(kanta,korkeus);
text("Suorakulmion kanta = "+kanta,10,50);
text("Suorakulmion korkeus = "+korkeus,10,100);
text("Suorakulmion pinta-ala = "+ala,10,150);
}
int pinta_ala(int a, int b) {
int ala = a*b;
return ala;
}
Kun ajat ohjelman, niin se näyttää tältä.

Ohjelman suoritusta voidaan havainnollistaa seuraavasti:

Aliohjelma pinta_ala(a,b) saa syötteenä arvot 6 ja 8 ja aliohjelma tulostaa tulosteena arvon 48, joka sijoitetaan pääohjelmassa muuttujalle ala.
