předchozí lekce (1.16) | obsah kurzu | následující lekce (1.18) |
Funkce je definovaná část programu, která je volaná z výrazu a provádí určité
výpočty, případně akce. Při ukončení funkce nám vrací požadovaný výsledek, se kterým
se ve výrazu, odkud byla funkce volána dále pracuje. Uveďme si proto příklad deklarace
a použití funkce v programu, který nám provádí výpočet mocniny zadaným exponentem
(53 = 5 x 5 x 5, výsledek je 125).
Function Umocni(x, y)
v = x 'převezmeme základ
For k = 1 to y
v = v*x 'násobíme opakovaně základem
Next
Umocni = v 'předáme výsledku funkce
End Function
Sub Main()
ConsoleClear
ConsoleShow
Writeln(Umocni(2,9)) 'vypíše hodnotu 1024
Writeln(Umocni(3,3)) 'vypíše hodnotu 81
Writeln(Umocni(5,2)) 'vypíše hodnotu 125
End Sub
Funkce se od podprogramu liší svým zahájením a ukončením, kdy je výpočet funkce
uveden klíčovým slovem Function. Počet deklarovaných proměnných v podprogramu i
funkci musí vždy odpovídat počtu předávaných parametrů ve volání podprogramu,
případně funkci. Parametry jsou od sebe odděleny čárkou. Funkce musí být vždy ukončena
příkazem End Function.
Ve funkci je automaticky deklarována proměnná se jménem funkce. Ta slouží pro
předání výsledné hodnoty nadřazenému programu. Ukládáme do ní tedy v programu
hodnotu, kterou chceme předat volanému programu. Například:
Jmeno = výraz
Při programování funkcí si musíte dát pozor na to, abyste v rámci funkce nepožadovali
provedení stejné funkce. Takovým funkcím se říká rekurzivní volání. Využívají se
například při výpočtu faktoriálu nebo známých hanojských věží. Rekurze nejsou v systému
BOANANZA umožněny.
předchozí lekce (1.16) | obsah kurzu | následující lekce (1.18) |