Funkce se ve vnit°nφm programovacφm jazyce deklaruje zßpisem ve tvaru:
function identifikßtor
(skupina_par; ... skupina_par) : typ;
blok;
kde skupina_par je skupina parametr∙ ve tvaru:
identifikßtor, ... identifikßtor : identifikßtor_typu
nebo
var identifikßtor, ... identifikßtor : identifikßtor_typu
V prvnφm p°φpad∞ se parametry p°edßvajφ hodnotou, v druhΘm referencφ (odkazem). DatabßzovΘ sloupce nelze p°edßvat referencφ. Blok funkce je tvo°en p°φpadn²mi deklaracemi konstant, typ∙ a prom∞nn²ch a t∞lem funkce, kter²m je slo₧en² p°φkaz.
Typ funkce musφ b²t bu∩ nestrukturovan², nebo typ °et∞zec znak∙.
P°φklady:
function Rand : real; {**************************************}
// vrßtφ pseudonßhodnΘ Φφslo
const c1 = 13849; c2 = 27181; c3 = 65536; begin seed := (c1+(c2*seed)) mod c3; Rand := seed/c3; end; function Exists(kod:string[8];var cisloVTab:integer) : boolean; {**************************************} // zjistφ, existuje-li kniha s kodem kod
// jestli₧e ano, vrßtφ v cisloVTab cislo zßznamu z tabulky Knihy
var ck : cursor; podm2 : string[100]; pocet : integer; begin podm2 := "select * from KNIHY where (VYRAZENA = false) and (KOD="""+kod+""")"; if Open_sql_cursor(ck,podm2) then Exit;
Rec_cnt(ck,pocet); // zjistφ poΦet
if pocet = 1 then begin // to je ta pravß Translate(ck,0,0,cisloVTab); Exists := true {OK} end
else begin // dva a vφc nem∙₧e nastat Info_box("Upozorn∞nφ","Zadan² k≤d nebyl nalezen!");
b := true; Exists := false; end; Close_cursor(ck); end;
Viz takΘ: