Luku 7

Funktio

Funktio on kuin aliohjelma, mutta se myös palauttaa arvon. Tämä onnistuu komennon Return avulla.

Seuraava funktio Tupla palauttaa luvun kaksinkertaisena:

Function Tupla(x As Number) As Number
    Return 2*x
End Function

Funktion alkurivin lopussa lukee As Number, mikä tarkoittaa, että funktio palauttaa lukuarvon.

Funktiota voisi käyttää näin:

Print Tupla(14)

Tuloksena on:

28

Summa

Seuraava funktio laskee summan luvusta 1 lukuun n:

Function Summa(n As Number) As Number
    Dim s = 0
    For i = 1 To n
        s = s + i
    Next i
    Return s
End Function

Print "Summa 1..5: " & Summa(5)
Print "Summa 1..10: " & Summa(10)
Print "Summa 1..100: " & Summa(100)

Ohjelman tuloksena on:

Summa 1..5: 15
Summa 1..10: 55
Summa 1..100: 5050

Tähdet

Seuraava funktio palauttaa merkkijonon, jossa on n kertaa merkki *:

Function Tahdet(n As Number) As String
    Dim s = ""
    For i = 1 To n
        s = s & "*"
    Next i
    Return s
End Function

Funktiota voisi käyttää näin:

Print Tahdet(8)

Tuloksena on:

********

Seuraava koodi luo porraskuvion funktion avulla:

For i = 1 To 10
    Print Tahdet(i)
Next i

Koodin tuloksena on:

*
**
***
****
*****
******
*******
********
*********
**********

Palindromi

Seuraavassa ohjelmassa on funktio Palindromi, joka tarkistaa, onko annettu sana palindromi. Sana on palindromi, jos se on sama väärinpäin luettuna.

Funktio palauttaa totuusarvon (Boolean), joka on joko True (tosi) tai False (epätosi). Funktion palauttamaa totuusarvoa pystyy käyttämään vertailussa If-rakenteessa.

Function Palindromi(sana As String) As Boolean
    Return sana = Reverse(sana)
End Function

Dim sana = InputText("Anna sana:")
If Palindromi(sana) Then
    Message "Sana on palindromi"
Else
    Message "Sana ei ole palindromi"
End If

Ohjelman suoritus voi näyttää tältä:

Tai tältä:

Edellinen | Seuraava