Preštudujte si: Podprogramy
4. Funkcie
Okrem procedúr ponúkajú programovacie jazyky
i podprogramy, ktoré ako výsledok svojej činnosti vracajú hodnotu.
Označujeme ich ako funkcie. Funkcie
ako také poznáme už z matematiky (abs, sin, cos a pod.), mnohé máme
k dispozícii i v programovacích jazykoch (Length, Copy, IntToStr
a pod.) a dokážeme vytvoriť i vlastné. Funkcia má vo
všeobecnosti podobu
Výsledok funkcie získame v rámci tela programu
prostredníctvom priraďovacieho príkazu, napr.
max:= VratMaximum;
Funkcia vracia takú hodnotu, aká je v rámci
jej tela priradená názvu funkcie. Vysvetlenie najlepšie nasledujúci poskytne
príklad.
var pole:array[1..20] of integer;
max:integer;
function NajdiMaximum:integer; {funkcia
vrati hodnotu typu integer}
var i,mm:integer;
begin
mm:=pole[1];
for i:=2 to 20 do if pole[i]>mm
then mm:=pole[i];
NajdiMaximum:=mm; {priradenie „vynesie“ ziskanu hodnota z
funkcie}
end;
{*************** hlavny program *******************}
begin
NacitajHodnotyDoPola;
max:=NajdiMaximum; {do
premennej max sa priradi hodnota ziskana}
{vo funkcii}
ShowMessage(max);
end;
V tele funkcie sme
namiesto premennej max (z
riešenia prostredníctvom procedúry) použili premennú mm. Iný názov sme zvolili len
s didaktických dôvodov – aby sa čitateľovi neplietli názvy. Ak by sme
v tele funkcie NajdiMaximum deklarovali premennú s rovnakým názvom ako je premenná globálna (max), došlo by k prekrytiu – v tele funkcie by sa
zmeny realizovali len na lokálnej premennej, globálna by zostávala
nepovšimnutá.
NacitajHodnotyDoPola;
Funkcia NajdiMaximum vráti hodnotu, ktorá sa
použije ako argument pre príkaz ShowMessage.