Št 12 Apr 2007
Procedúry sú podprogramy, ktoré sa dajú volať z hlavného programu (alebo navzájom). Deklarujú sa mimo hlavného programu (t.j. nie medzi begin a end.). Každá procedúra musí mať meno (nesmú byť dve s rovnakým menom). Procedúry majú svoj vlastný begin a end, môžu mať aj vlastné premenné.
Nasledujúca procedúra vypíše Ahoj na obrazovku.
/—code pascal
program Procedures;
procedure Ahoj;
begin
Writeln(‘Ahoj’);
end;
begin
end.
\—
Ale keďže sa nikde v hlavnom programe nezavolala, tak sa nič pri spustení nestane. Aby sa spustila, je potrebné ju zavolať pomocou jej mena.
/—code pascal
program Procedures;
procedure Ahoj;
begin
Writeln(‘Ahoj’);
end;
begin
Ahoj;
end.
\—
Procedúry musia byť v programe vždy vyššie, ako je miesto, kde sa volajú. Jedna procedúra môže volať aj iné provedúry (ale iba tie, definované nad ňou). V nasledujúcom príklade sa najskôr zavolá procedúra AhojXX a tá zavolá až procedúru Ahoj.
/—code pascal
program Procedures;
procedure Ahoj;
begin
Writeln(‘Ahoj’);
end;
procedure AhojXX;
begin
Ahoj;
end;
begin
AhojXX;
end.
\—
Procedúry podobne, ako iné príkazy môžu mať parametre. Každému parametru sa povie typ a meno (rovnako ako pri definovaní premenných). Ak chcete zadať viacero parametrov, oddelujú sa bodkočiarkami.
/—code pascal
program Procedures;
procedure Print(s: String; i: Integer);
begin
Writeln(s);
Writeln(i);
end;
begin
Print(‘Ahoj’,3);
end.
\—
=== Procedúry – globálne a lokálne premenné .{color:green}===
Doteraz boli všetky premenné definované ako globálne (a ani ste o tom nevedeli ;) ), to znamená, že sa dali používať v celom programe. Procedúry môžu používať aj svoje lokálne premenné – v procedúre sa definujú a iba tam sa dajú používať. Definujú sa úplne podobne, ako globálne premenné, len nie na začiatku programu, ale na začiatku procedúry.
/—code pascal
program Procedures;
procedure Print(s: String);
var
i: Integer;
begin
for i := 1 to 3 do
Writeln(s);
end;
begin
Print(‘Hello’);
end.
\—
=== Funkcie .{color:green}===
Funkcie sú podobné procedúram, len na rozdiel od nich vedia vrátiť nejakú hodnotu. Typ tejto hodnoty sa určí pri deklarácii funkcie. Napríklad nasledujúca funkcia Plus vráti súčet dvoch čísel ako Integer. Hodnota sa po výpočte priradí “premennej”, ktorá sa volá rovnako ako funkcia.
/—code pascal
program Functions;
var
vysledok : Integer;
function Plus(i, j:Integer): Integer;
begin
Plus := i + j;
end;
begin
vysledok := Plus(1,2);
Writeln(Plus(1,2));
end.
\—
Na ukončenie funkcie alebo procedúry sa dá použiť príkaz Exit.
/—code pascal
program Procedures;
procedure Meno;
var
Name: String;
begin
Writeln(‘Ako sa volas?’);
Readln(Name);
if Name = ” then
Exit;
Writeln(‘Volas sa: ‘,Name);
end;
begin
Meno;
end.
\—