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) |