program faktorial;
{ Program načte číslo x (zde nám stačí malé, např. x <= 10) a vypíše x!. }
var cislo : integer; { Zde deklarované proměnné se nazývají globální. }
{ Funkce dostane číslo n ( předpokládá, že n <= 10) a vrátí n!. }
function faktorial( n : integer ):longint;
var i : integer; { Proměnné deklarované uvnitř podprogramů se nazývají lokální. }
begin
faktorial := 1;
for i:=1 to n do
faktorial := faktorial * i; { Návratová hodnota se uloží do "proměnné" s názvem funkce. }
end;
begin
read(cislo);
writeln(faktorial(cislo)); { Zde voláme funkci faktoriál. To, co vrátí, rovnou předáme příkazu write.
Pozor! Funkce faktorial sama o sobě nic nevypisuje! }
end.
Kdo byste našel v nějakém z těchto programů chybu, dejte mi to vědět - můžete tak získat bonusové body (1 chyba ≈ 5 bodů). ;)