Algoritmizace a programování Podprogramy v Delphi - 10 IKT Algoritmizace a programování Algoritmizace a programování Podprogramy v Delphi - 10 Mgr. Josef Nožička www.zlinskedumy.cz
Anotace Materiál seznamuje s žáky s významem podprogramů v programovacím jazyce. Musí být doplněn výkladem. Autor Mgr. Josef Nožička (Autor) Jazyk Čeština Očekávaný výstup 26–41-M/01 Elektrotechnika 78-42-M/01 Technické lyceum Speciální vzdělávací potřeby - žádné - Klíčová slova Podprogram, procedura, funkce Druh učebního materiálu Prezentace Druh interaktivity Kombinované Cílová skupina Žák Stupeň a typ vzdělávání odborné vzdělávání Typická věková skupina 16 - 19 let Vazby na ostatní materiály Je součástí IKT.
Význam podprogramů v prog. jazyce Podprogramy jsou základním nástrojem hierarchického členění programu. Používají se ze 2 hlavních důvodů. Z důvodu lepší přehlednosti programy (je-li program rozsáhlý co do délky zdrojového kódu) Je-li třeba nějakou činnost provádět vícenásobně na různých místech programu, je vhodné ji napsat jako podprogram, který bude a na příslušná místech programu vyvolán.
Typy podprogramů Programovací jazyk Delphi rozlišuje 2 typy podprogramů, a to procedury a funkce. Procedura může vracet libovolný počet výsledků a je volána jako samostatný příkaz. Naproti tomu funkce vrací vždy jeden výsledek, jehož odpovídající datový typ je uváděn v hlavičce funkce. Volání funkce nemůže být na rozdíl od procedury samostatným příkazem, ale musí být vždy součástí jiného příkazu.
Procedury Obecná definice procedury: procedure jméno (seznam parametrů); {deklarace lokálních proměnných;} begin tělo procedury; end; Poznámky: Úsek deklarace lokálních proměnných (případně s ním související definice vlastních datových typů) je nepovinný. Stejně tak je nepovinný seznam parametrů.
Procedury bez parametrů Jsou procedury, které ve své hlavičce (první řádek definice procedury) mají uvedeny pouze své jméno a seznam parametrů zde chybí. Příklad procedury bez parametrů: procedure pozdrav; begin showmessage (‘Dobrý den!’); end; V hlavním programu je taková procedura volána samostatným příkazem, který spočívá pouze v uvedení jejího jména (v tomto případě pozdrav; )
Procedury s parametry Jsou procedury, které ve své hlavičce mají uvedeny kromě své jména i seznam takzvaných formálních parametrů. Používají se pro zvýšení univerzálnosti procedur. Příklad procedury s parametry: procedure prepona (a,b:real;var c:real); begin c:=sqrt(a*a + b*b); end; Poznámka: Klíčové slovo var, uvedené před proměnnou c, vyjadřuje, že se jedná o výstupní parametr (parametr – odkaz). Pokud bychom slovo var před příslušným parametrem nenapsali, nedošlo by ke správnému předání výstupní hodnoty zpět do programu.
Procedury s parametry II. Při volání této procedury je třeba uvést nejen její název, ale i seznam skutečných parametrů, uvedených v závorce za jménem procedury. Seznam těchto parametrů musí přitom co do pořadí i do typové kompatibility odpovídat parametrům formálním. Volání procedury z předchozího programu: begin writeln (’Zadej velikosti odvěsen:’); readln(x,y); prepona(x,y,z); writeln (’Prepona =’,z); end.
Funkce Jsou podprogramy, které v Delphi vracejí vždy jednu výstupní hodnotu, která se přiřazuje do jejího jména. (Na rozdíl od procedur, kde počet výstupních hodnot může být libovolný). Příklad funkce: function prepona (a,b:real):real; begin prepona:=sqrt(a*a + b*b); end; Volání funkce na rozdíl od volání procedury není samostatný příkaz, ale je vždy součástí nějakého výrazu. Příklad volání: z:=prepona(x,y);
Rekurzivní procedury a funkce Jsou podprogramy, které ve svém těle volají sami sebe. Jejich použití v programu většinou výrazně zmenší počet řádků zdrojového kódu, na druhou stranu jejich realizace může být pro počítač paměťově náročná. Příklad rekurzivní funkce: {funkce pro výpočet faktoriálu} function faktorial (n:integer):longint; begin if n<=1 then faktorial:=1 else faktorial:=n*faktorial(n-1); end;
Zdroje KADLEC, Václav. Učíme se programovat v Delphi a jazyce Object Pascal. Praha: Computer Press, 2001, ISBN 80-722-6245-9. PÍSEK, Slavoj. Delphi-začínáme programovat: podrobný průvodce začínajícího uživatele. Praha: Grada, 2002, ISBN 80-247-0547-8.