Hlavní strana -> Programování v C -> 05. Funkce -> rozšíření

05. Funkce - rozšíření

Na přání jednoho z čtenářů této učebnice jsem se dokopal k tomu, abych trochu lépe vysvětlil funkce. Sám jsem si to teď po sobě přečetl a kdybych tomu nerozuměl, tak bych to asi ani nepochopil. Nevěšte hlavu - pokusím se to napravit. Myslím, že tady budu vysvětlovat zase od začátku.

Funkce je kusem kódu (programu), který je navržen k tomu, aby prováděl nějakou činnost. Nepředstavujte si funkci jenom něco jako funkce sinus nebo logaritmická funkce. Funkce obecně vypadá takto:

návratový-typ jméno-funkce(seznam-parametrů)
{
  příkazy-funkce
}

návratový-typ = typ dat (int, float ...), jež bude funkce při svém ukončení vracet volajícímu procesu

jméno-funkce = jméno, které si zvolíme, a které by mělo (nemusí) být nějak logicky spojeno s úkolem funkce

seznam-parametrů = seznam dat, která budou předána této funkci v okamžiku jejího vyvolání (v okamžiku vyvolání funkce)

příkazy-funkce = samotné příkazy (úkony), které má funkce udělat

Zrovna mě napadl dobrý příklad, na kterém byste funkce měli pochopit. Vemte si podnik (program), kde je montážní linka (jednotlivé procesy na sebe navazují, nejdříve jde jeden, potom druhý - stejně jako příkazy v programu) a na té montážní lince stojí dělníci (funkce). Tito dělníci (funkce) jsou připraveni, že k nim přijde nějaký rozdělaný výrobek v určité fázi (přebírají parametry), dělník potom provede určité úkony, namontuje nějaký díl, přišroubuje pár šroubů nebo díl natře (provede příkazy) a takto upravený rozdělaný výrobek pošle dál, vrátí jej do oběhu (návratový typ).

teď proč je důležité dodržovat přesně návratový typ a seznam parametrů. Použiju geniální výrobní podnik a montážní linku. Představte si, že nějaký dělník má za úkol díl, který k němu přijde natřít barvou a někdo mu podá třeba žvýkačku :-) Já vím, je to trochu ujeté, ale určitě je to přesné. My sice víme, že dělník není debil a nebude se pokoušet natřít základovkou žvýkačku, ale počítač se na vás blbě tvářit nebude, až po něm budete něco podobně absurdního chtít a prostě to udělá a vy budete koukat. Zase na druhé straně tady je návratový typ, který je třeba dodržet. Na naší montážní lince je opět dělník, ale tentokrát už dostává správné díly, hezky je natírá a kompletuje, ale po ukončení své práce na daném výrobku jej nepošle dál, ale nechá si jej a místo natřeného blatníku pošle dál šroubovák. Stejný případ jako minule. Následující dělník se tvářit blbě bude, nikoli však náš program. Samozřejmě chovat se blbě bude. Opět použiju přirovnání. Všechno musí klapat a přesně sedět a když programu nedáte přesně to co chce, tak je to jako byste do převodovky nenaleli olej, ale třeba čočkovou polívku. Není nutné, že se to hned pokazí, ale přinejmenším se dá očekávat, že to nebude ono a z programu se budou sypat nesmyslné hodnoty a z převodovky strašidelné zvuky a později kolečka.

Myslím, že k vysvětlení funkcí by to mělo stačit. Na to ostatní je příklad ze základní části postačující, ale pokud by ani to nestačilo, tak bych vymyslel i nějaký další. No už jsem se rozhodl, že to ještě více rozepíšu, ale pravděpodobně až v pátek. Zatim. K.

Zpět

Programování v C | CZ 175/477 | Mapa stránek
Bc. Petr Klimánek, student Ostravské univerzity v Ostravě