Funkcijos Spausdinti
( 6 Votes )

Parašė Vidmantas Šarkys   

Skyriuje "Procedūros" apžvelgėme, kaip į procedūras siųsti kintamuosius, juos grąžinti, bei kaip sukurti vidinius kintamuosius. Kalbant apie šiuos veiksmus su kintamaisiais, funkcijoms galioja tos pačios taisyklės, tad detaliau to nenagrinėsime.

Funkcijų naudojimas nėra populiarus paskalyje, tačiau kartais funkcija gali sutrumpinti kodo rašymą ar padaryti programą vaizdesne. Ypač patogi funkcijų savybė - galimybė panaudoti jas kaip kintamuosius, ką trumpai apžvelgėme anksčiau. Funkcija gali įgyti betkokį tipą. Sukurkime "boolean" tipo funkciją ir panaudokime ją programoje.

program funkcija;
var x : real;
function tikrinam : boolean;
Begin
 tikrinam := x > 0;
end;
Begin
 WriteLn('Įveskite skaičių: ');
 ReadLn(x);
 WriteLn('Šis skaičius yra teigiamas - ', tikrinam);
 ReadLn;
end.

Programos esmė - patikrinti, ar įvestasis skaičius yra teigiamas, t.y. didesnis už nulį. Šis tikrinimas atliekamas funkcijoje, kurią sudaro vienintelis, sąlygos operacijos, sakinys. Funkcija yra "boolean" tipo ir gali įgyti tik dvi reikšmes ("true" arba "false"). Viskas prieklausys nuo  nuo "x" reikšmės. Vėliau aktyvuojame funkciją pagrindiniame bloke jau rašydami atsakymą į ekraną. Jeigu įvestasis skaičius bus didesnis už 0, tai spausdinamas sakinys atrodys taip : "Šis skaičius yra teigiamas - TRUE". Tačiau toks atsakymas skamba keistokai, ar ne? Papildykime programą dar viena funkcija, kuri išspausdintų suprantamą ir aiškų atsakymą.

program funkcija2;
var x : real;
function tikrinam : boolean;
Begin
tikrinam := x > 0;
end;
function rasom (a : boolean) : string[30];
Begin
 Case a of  
  TRUE :  rasom := 'Šis skaičius yra teigiamas';
  FALSE : rasom := 'Šis skaičius yra neigiamas';
 end;
end;
Begin
WriteLn('Įveskite skaičių: ');
ReadLn(x);
WriteLn(rasom(tikrinam));
ReadLn;
end.

Padarėme gan keistą dalyką - nusiuntėme funkciją į kitą funkciją! Iš tikrųjų tai gan logiška, prisiminus, jog funkcija, kaip ir kintamasis, gali įgyti tam tikrą reikšmę. Tai reiškia, kad funkcijas galima siuntinėti į kitas funkcijas ar procedūras kaip ir bet kuriuos kitus kintamuosius.

Funkcija "rasom" gauna "boolean" tipo kintamąjį, kuris, šiuo atveju yra mūsų siunčiamoji funkcijos "tikrinam" reikšmė. Priklausomai nuo "a" reikšmės, funkcija "rasom" įgis vienokią ar kitokią sakinio reikšmę, kurią ir spausdinsime ekrane. 

Apžvelgėme įdomesnius funkcijų naudojimo pavyzdžius. Panaudoti funkcijas galime spręsdami praktiškai visose programose, nepriklausomai nuo siekiamo tikslo. Kaip ir procedūras, funkcijas patartina naudoti siekiant suteikti programai profesionalumo, aiškumo įspūdį.