Uživatelé, kteří nejsou v zásadě daleko od programování, jsou zřídka konfrontováni s pojmy funkce a procedury a jsou spojeni s něčím matematickým a byrokraticko-lékařským. Při programování mnoho jazyků pracuje s těmito koncepty, ale ani odborníci někdy nedokážou jasně porozumět rozdílu mezi funkcí a procedurou. Jako u tohoto gophera: je, ale nikdo ho nevidí. Uvidíme, jestli jsou rozdíly tak neviditelné.
Obsah článku
- Definice
- Porovnání
- Závěry
Definice
Funkce při programování se podprogram vyvolává z jiných podprogramů tolikrát, kolikrát je to nutné.
Postup - pojmenovaná část programu (podprogram), opakovaně vyvolaná z následných částí programu požadovaný počet opakování.
na obsah ↑Porovnání
Hlavní rozdíl mezi funkcí a procedurou je výsledek návratu. Ve skutečnosti jsou jak funkce, tak procedury logicky nedělitelné bloky, které tvoří programový kód. Funkce vrací hodnotu, postup ve většině programovacích jazyků nevrací nebo (například v C) vrací prázdnou hodnotu. Ve druhém případě (v C) se postup považuje za podřízený druh funkce.
Záhlaví funkce obsahuje slovo „funkce“, identifikátor (vlastní název funkce), seznam parametrů a případně typ výsledku. V těle funkce musí být operátor předepsán a přiřadit k názvu funkce hodnotu, kterou vrací. Název procedury obsahuje slovo „procedura“, identifikátor (název procedury) a seznam parametrů. Volání funkce se provádí jako součást výrazů, ve kterých jsou tyto výrazy použity, volání procedur vyžaduje samostatné prohlášení. Procedura se nazývá pouze jménem, název funkce je spojen s její hodnotou. Na diagramech algoritmů je funkční volání zobrazeno ve výstupním bloku nebo v procesním bloku, volání procedury ve speciálním bloku „předdefinovaný proces“.
na obsah ↑Závěry
- Funkce vrací hodnotu, procedura ne.
- Hlavička funkce musí obsahovat typ výsledku..
- V těle funkce je vyžadován operátor, který přiřazuje hodnotu názvu funkce.
- Volání procedury vyžaduje samostatného operátora, funkční volání je možné jako součást výrazů.
- K vyvolání je potřeba název procedury, název funkce má přiřadit hodnotu.
- Na diagramech algoritmů je volání procedur zobrazeno v samostatném bloku, volání funkce je zobrazeno v procesním nebo výstupním bloku.