Funkce a podprogramy
Připravit hodinu Všechny formáty
Žáci v II. ročníku gymnázia přecházejí od zápisu postupu v jednom bloku k rozkladu úlohy na podprogramy. Funkce tu není jen volání vestavěného příkazu, ale vlastní pojmenovaný postup s parametry a návratovou hodnotou, který lze znovu použít. Výstupy RVP G požadují, aby žák skládal přehledný program s podprogramy, ne jen opakoval tutéž sekvenci příkazů na několika místech.
Klikněte a tvořte
Získejte přípravu zdarma
Vyberte formát. Jedním kliknutím otevřete tvorbu na téma Funkce a podprogramy (II. ročník) — ScioBot ho připraví za vás.
Další formáty na jedno kliknutí
- Vytvořit: Pracovní list
Po vytvoření si materiál stáhnete jako PDF / DOCX.
- Vytvořit: Písemka
Po vytvoření si materiál stáhnete jako PDF / DOCX.
- Vytvořit: Aktivita
- Vytvořit: Prezentace
Po vytvoření si materiál stáhnete jako PPTX / PDF.
- Vytvořit: Tisknutelné materiály
- Vytvořit: Interaktivní hry
Téma si můžete upravit. Předmět a ročník už jsou vyplněné — stačí si vybrat, co chcete vytvořit.
O tématu
Nejprve se z opakujícího se kódu vyčlení společný postup, pojmenuje se a doplní vstupy (parametry) a výsledek (návratová hodnota). Potom se hlavní program skládá z volání těchto podprogramů: větvení, cykly a seznamy zůstávají uvnitř funkcí, ale rozhraní je krátké a čitelné. Žák přitom sleduje, že špatně zvolené rozhraní (chybějící parametr, tisk místo návratu) kazí skládání celku.
Hodina směřuje k tomu, aby žák uměl navrhnout několik funkcí k jedné úloze, ověřit je na příkladech a sestavit z nich přehledný program. Odpovědnost za důsledek programu se tu projevuje i v tom, že funkce má jasný význam: počítá, ověřuje, transformuje data — a hlavní tok pak jen skládá tyto kroky.
Předpoklady
- Rozklad úlohy na kroky a zápis algoritmu před kódem
- Proměnné, výrazy a předávání hodnot v Pythonu
- Větvení a cykly uvnitř delšího postupu
- Práce se seznamem jako se vstupem nebo výsledkem postupu
Klíčové pojmy
- Podprogram (funkce)
Pojmenovaný blok příkazů, který řeší jednu ucelenou část úlohy a lze ho volat z více míst programu.
- Definice a volání
Definice (
def) pouze popisuje postup; výpočet nastane až voláním. Bez volání se tělo funkce neprovede.- Parametr
Pojmenovaný vstup v definici funkce; při každém volání dostane konkrétní hodnotu (argument).
- Návratová hodnota
Hodnota, kterou funkce předá volajícímu příkazem
return; není to výpis na obrazovku.- Lokální proměnná
Jméno vytvořené přiřazením uvnitř funkce je obvykle lokální. Přiřazení do něj samo nepřepíše stejnojmenné jméno mimo funkci. Změna obsahu předaného seznamu je jiná operace a může být viditelná i volajícímu.
- Rozklad úlohy
Opakující se nebo samostatně srozumitelný postup se vyčlení do funkce; hlavní program pak skládá volání místo kopírování kódu.
- Rozhraní funkce
To, co funkce slibuje: jaké vstupy očekává a co vrací. Dobré rozhraní je krátké, pojmenované podle účelu a nezávislé na tom, odkud se volá.
Nápady na aktivity
-
Postup
Rozklad programu na funkce
Žáci seřadí kroky řešení do postupu, který odděluje hlavní program od podprogramů. Sledují, jak se dílčí části skládají do celku.
-
Přiřazování
Přiřazení parametrů a návratových hodnot
Žáci přiřazují hodnoty parametrům funkcí a určují, co funkce vrátí. Procvičí vazbu mezi voláním podprogramu a jeho výsledkem.
-
Rozřazování
Opakování kódu, nebo vlastní funkce?
Žáci třídí příklady podle toho, zda se vyplatí opakující se postup zobecnit do podprogramu, a zdůvodňují vhodné rozdělení programu.
-
Kvíz
Návrh funkcí pro řešení úloh
Žáci vybírají správné parametry, návratovou hodnotu a místo volání pro navržené funkce. Otázky se zaměřují na rozklad úlohy, ne na vestavěné příkazy.
-
Logický řetěz
Příčina, volání a návrat z podprogramu
Žáci skládají řetězec od předání argumentů funkci přes její výpočty až k návratové hodnotě a navazujícímu kroku hlavního programu.
-
Čtení s porozuměním
Čtení programu s funkcemi
Žáci čtou krátký program s několika podprogramy a odpovídají na otázky o toku hodnot, parametrech, návratových hodnotách a rozdělení opakujícího se postupu.
Časté miskoncepce
Častá chyba
Žák napíše definici
def vypocet(cislo):s tělem funkce, ale nikde funkci nezavolá. Po spuštění souboru očekává výsledek a říká, že funkce nefunguje.Jak na to
Porovnejte definici, volání a výpis. Tělo se provede až při volání a
returnpředá výsledek volajícímu.def dvojnasobek(cislo): return cislo * 2 vysledek = dvojnasobek(3) print(vysledek) # 6Častá chyba
Žák uvnitř funkce použije
printa tvrdí, že funkce „vrací“ číslo; v hlavním programu pak s výsledkem nejde počítat (Nonenebo chybějící hodnota).Jak na to
Stejný výpočet přepište na
return; v hlavním programu výsledek přiřaďte a teprve pak případně vypište. Porovnejte oba běhy vedle sebe.Častá chyba
Žák uvnitř funkce přiřadí do
xa očekává, že se změníxz hlavní části programu, protože se jmenuje stejně.Jak na to
Vypište hodnotu
xpřed voláním, uvnitř funkce a po návratu; pak výsledek vraťte a přiřaďtex = f(...), ať je předání vidět v kódu.Častá chyba
Žák kopíruje tutéž smyčku na tři místa a funkci odmítá („to je jen pro
printainput“), nebo napíše funkci bez parametrů a sahá na globální seznam.Jak na to
Nechte tři kopie porovnat, pak jednu smyčku vytáhnout do funkce se seznamem jako parametrem a návratem; hlavní program ať jen třikrát zavolá.
Úkoly pro žáky
Z opakujícího se výpočtu (např. součet kladných prvků seznamu, ověření hesla, převod jednotek) navrhnout funkci, otestovat ji na 3 vstupech a použít ji v krátkém hlavním programu.
Rozdělit jednu úlohu na 2–3 funkce (načtení/příprava dat, výpočet, sestavení výsledku) a porovnat čitelnost s původním „jedním kusem“ kódu.
Hodnocení
Žák k zadané úloze napíše alespoň dvě funkce s parametry a návratovou hodnotou a složí z nich přehledný hlavní program.
Ústně nebo písemně rozliší definici a volání a na vlastním kódu ukáže rozdíl mezi print a return.
Očekávané výstupy
- RVP G žák vytvoří přehledný program pro vyřešení konkrétního problému s ohledem na jeho možné důsledky a svou odpovědnost za ně; používá opakování, větvení programu se složenými podmínkami, proměnné, seznamy, podprogramy s parametry a návratovými hodnotami; ve snaze o vyšší efektivitu navrhuje, řídí a hodnotí souběh procesů
Zdroje
Učíte Funkce a podprogramy trochu jinak?
Popište ScioBotu vlastními slovy, co s žáky chcete zvládnout a kolik máte času. Materiál přizpůsobí vašemu ŠVP, třídě i žákům se speciálními vzdělávacími potřebami.
Prozkoumejte další témata
-
Hardware a software
Hardware tvoří fyzické vybavení počítače, software určuje jeho činnost; jejich spolupráci lze vysvětlit na spuštění aplikace, úpravě dokumentu a jeho uložení.
-
Kybernetická bezpečnost
Kybernetická bezpečnost propojuje rozpoznání hrozeb s volbou ochrany účtů, zařízení a dat i s postupem při podezření na jejich napadení.
-
Microsoft Word
Microsoft Word umožňuje vytvářet přehledné dokumenty, jejichž členění a vzhled lze spravovat pomocí odstavců, stylů a automatického obsahu.
-
Internet
Internet propojuje počítačové sítě; na příkladu načtení webové stránky lze vysvětlit, jak spolu souvisejí doménová jména, adresy zařízení a přenos dat.
-
Data, informace a modelování
Význam dat závisí na kontextu; při tvorbě modelu vybíráme vlastnosti a vztahy podle otázky, na kterou má model odpovědět.
-
Počítačová grafika
Rastrové a vektorové zobrazení určují, jak lze obrázek upravovat a zvětšovat; účel použití pomáhá zvolit rozměry, formát a způsob exportu.
-
Software
Software zahrnuje programy, které řídí činnost zařízení a zpracovávají data; operační systém přitom poskytuje prostředí a služby pro běh aplikací.
-
Databáze
Relační databáze propojuje záznamy pomocí klíčů; vhodný návrh tabulek omezuje opakování údajů a umožňuje získávat odpovědi pomocí dotazů.