Esimerkki: Desimaaliluvuilla laskeminen
Tehdään ohjelma, joka laskee suorakulmio piirin. Piiri lasketaan kaavalla: piiri = 2*kanta + 2*korkeus. Haluamme, että aliohjelma laskee desimaalilukuja. Kokonainen ohjelma on seuraava.
|
// 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() {
float kanta = 2.5;
float korkeus = 3.2;
float p = piiri(kanta,korkeus);
text("Suorakulmion kanta = "+kanta,10,50);
text("Suorakulmion korkeus = "+korkeus,10,100);
text("Suorakulmion piiri = "+p,10,150);
}
float piiri(float a, float b) {
float p = 2*a+2*b;
return p;
}
Kun katsotaan aliohjelmaa, huomataan, että aliohjelma alkaa sanalla float eli aliohjelma palauttaa desimaalilukuarvon pääohjelmalle. Myös kaikki muuttujat on määritelty desimaalilukumuuttujiksi. Ohjelma tulostaa seuraavaa.
Aliohjelman toimintaa voidaan havainnollistaa seuraavasti.

Funktio eli aliohjelma piiri(a,b) on kuin kone, johon syötetään kannan ja korkeuden arvot, jonka jälkeen funktiokone tulostaa ulos piirin arvon, joka sitten voidaan sijoittaa pääohjelmassa muuttujalle p.
Tärkeintä on huomata, että palautettavan arvon tietotyyppi eli aliohjelman tietotyyppi on oltava sama kuin pääohjelmassa olevan muuttujan tietotyyppi, johon arvo sijoitetaan. Eli seuraava määrittely ei toimi, koska tietotyyppi on eri.
void draw() {
int kanta = 2;
int korkeus = 3;
int p = piiri(kanta,korkeus);
}
float piiri(int a, int b) {
int p = 2*a+2*b;
return p;
}
Mutta seuraava sitä vastoin toimii, koska tietotyypit ovat samat.
void draw() {
int kanta = 2;
int korkeus = 3;
float p = piiri(kanta,korkeus);
}
float piiri(int a, int b) {
int p = 2*a+2*b;
return float(p);
}
Vaikka alkuarvot ovat kokonaislukuja, niin aliohjelma voi palauttaa toisen tietotyypin muuttujan. Palautettava desimaaliluku pitää pääohjelmassa myös sijoittaa float-tyyppiselle muuttujalle.