Posloupnost příkazů je možné pojmenovat a později toto jméno používat jako reprezentanta celé posloupnosti = podprogram.
Procedura
Uvádí se v deklarační části za úsekem deklarací proměnných. V okamžiku zavolání procedury musí dojít k náhradě formálních parametrů skutečnými. Posloupnosti příkazů, která tvoří tělo procedury, se mohou používat pro všechny objekty existující v hlavním programu. Pomocí těchto objektů, které nazývám globálními objekty, může procedura komunikovat se svým okolí. .Současně je možné definovat objekty v rámci jedné procedury.
Struktura
procedure jmeno (seznam formálních parametrů);
část deklarační
begin
část příkazová;
end;
Volání procedury
jméno_procedury (seznam skutečných parametrů);
Funkce
Podprogram, jehož výsledkem je jediná hodnota . Typem funkce nesmí být strukturovaný typ. Formální parametry mají stejný význam jako u procedury. V těle funkce se musí vyskytovat přiřazovací příkaz, kterým se přiřadí hodnota funkci (např. jméno_funkce:=d*c/2; nebo Result:=d*c/2;).
Struktura
function jmeno (seznam formálních parametrů) : typ;
část deklarační
begin
část příkazová;
end;
Volání funkce
jméno_funkce(seznam skutečných parametrů);
- Lze provést uvnitř jiného příkazu: x:=sqrt(jméno_funkce);
Parametry volané hodnotou mají tvar identifikátor: typ a parametry volané odkazem mají tvar var identifikátor: typ.
Rozdíl mezi procedurou a funkcí
Procedura
- Nemá návratovou hodnotu.
- Nemusí mít vstupní parametry.
- Nemá typ.
Funkce
- Má návratovou hodnotu.
- Má alespoň 1 vstupní parametr.
- Musí mít typ.