Luku 6

Aliohjelma

Seuraavassa ohjelmassa on aliohjelma Viesti, joka tulostaa tekstin "Moikka!". Ohjelma kutsuu aliohjelmaa kolme kertaa.

Sub Viesti()
    Print "Moikka!"
End Sub

Viesti
Viesti
Viesti

Ohjelman tulostus on seuraava:

Moikka!
Moikka!
Moikka!

Aliohjelman avulla voi siis antaa uuden nimen koodinpätkälle.

Parametri

Aliohjelman parametri tarkentaa, millä tavalla aliohjelman tulee toimia. Parametri muistuttaa paljon muuttujaa.

Seuraavassa ohjelmassa aliohjelmassa on parametri nimi, joka ilmestyy osaksi viestiä.

Sub Viesti(nimi As String)
    Print "Moikka, " & nimi & "!"
End Sub

Viesti "Uolevi"
Viesti "Maija"
Viesti "Kaaleppi"

Nyt ohjelman tulostus on seuraava:

Moikka, Uolevi!
Moikka, Maija!
Moikka, Kaaleppi!

Parametrin tavallisia tyyppejä ovat String (merkkijono) sekä Number (lukuarvo).

Monta parametria

Joskus aliohjelmassa on monta parametria. Näin on seuraavassa esimerkissä:

Sub Viesti(nimi As String, toistot As Number)
    For i = 1 To toistot
        Print "Moikka, " & nimi & "!"
    Next i
End Sub

Viesti "Uolevi", 3
Viesti "Maija", 5
Viesti "Kaaleppi", 2

Ideana on, että parametrin toistot avulla voi säädellä, montako kertaa sama viesti tulostetaan. Ohjelman tulostus on seuraava:

Moikka, Uolevi!
Moikka, Uolevi!
Moikka, Uolevi!
Moikka, Maija!
Moikka, Maija!
Moikka, Maija!
Moikka, Maija!
Moikka, Maija!
Moikka, Kaaleppi!
Moikka, Kaaleppi!

Naama

Seuraava aliohjelma tulostaa naaman haluttuun kohtaan:

Sub Naama(x As Number, y As Number)
    FillColor 255, 255, 0
    FillCircle x, y, 30
    FillColor 0, 0, 0
    FillCircle x-10, y-10, 5
    FillCircle x+10, y-10, 5
    FillCircle x, y+15, 10
End Sub

Esimerkiksi aliohjelman kutsu

Naama 200, 200

tuottaa seuraavan tuloksen:

Seuraava ohjelma piirtää 100 naamaa satunnaisiin kohtiin:

For i = 1 To 100
    Naama Rnd(0, 640), Rnd(0, 480)
Next i

Nyt tuloksena voi olla:

Hassu teksti

Seuraava ohjelma tulostaa tekstin niin, että joka kirjain on eri värinen:

Sub Hassu(viesti As String, x As Number, y As Number)
    TextSize 50
    TextFont "Arial"
    TextAlign 3
    For i = 1 To Len(viesti)
        TextColor Rnd(100, 255), Rnd(100, 255), Rnd(100, 255)
        DrawText x+(i-1)*35, y, Mid(viesti, i, 1)
    Next i
End Sub

Hassu "Heipparallaa!", 50, 50
Hassu "Tyylikästä?", 50, 150

Ohjelma käy silmukassa läpi tekstin merkit. Funktio Len kertoo, montako merkkiä tekstissä on, ja funktion Mid avulla saa selville tietyssä kohdassa olevan merkin.

Ohjelma näyttää tältä:

Edellinen | Seuraava