Python: cyklus for a řízení výpočtu

Žáci v Pythonu řídí opakování cyklem for, porovnají ho s blokovým opakováním a ověří, kolikrát se tělo cyklu provede.

Průvodce tématem Python: cyklus for a řízení výpočtu v předmětu Informatika pro 7. třídu: co mají žáci zvládnout, na co navázat a kde nejčastěji chybují. K tomu příprava na hodinu, pracovní list nebo písemka, které ScioBot připraví na jedno kliknutí přesně pro tento ročník.

Připravit hodinu Všechny formáty

Klikněte a tvořte

Získejte přípravu zdarma

Vyberte formát. Jedním kliknutím otevřete tvorbu na téma Python: cyklus for a řízení výpočtu (7. třída) — ScioBot ho připraví za vás.

Připravit hodinu

Další formáty na jedno kliknutí

Téma i ročník jsou už vyplněné. Nic nepíšete — rovnou tvoříte.

Žáci v textovém jazyce Python zapisují opakování cyklem for a řídí, kolikrát se má tělo programu provést. Navazují na blokové opakování: stejný záměr (udělej totéž Nkrát) se teď zapisuje příkazem, odsazením a rozsahem hodnot, ne skládáním bloků. Výstupy INF-INF-002-ZV9-007 a INF-INF-002-ZV9-005 se naplňují tak, že žáci program sestaví přehledně a po přečtení kroků umí říct, co algoritmus řeší a kolikrát se tělo skutečně spustí.

Porovnání s blokovým cyklem slouží k přenosu představy, ne k překladu klikání do syntaxe. Žák u konkrétní úlohy (součet, tisk řady, opakovaný výpočet) určí řídicí proměnnou, rozsah a příkazy uvnitř těla. Kontrola počtu provedení je povinná část hodiny: predikce před spuštěním, stopování na papíře a shoda s výstupem.

Hodina zůstává u řízení výpočtu jedním cyklem for. Vnořené cykly, funkce a podmínka if patří k pozdějším tématům plánu; zde stačí, aby žák uměl změnit rozsah, vysvětlit, proč se tělo provedlo právě tolikrát, a opravit program, který se točí jinak, než zamýšlel.

Předpoklady

Klíčové pojmy

Cyklus for
Příkaz, který tělo programu provede jednou pro každou hodnotu z daného rozsahu; žák ho čte jako „pro každou hodnotu z … proveď …“.
Tělo cyklu
Odsazené příkazy pod for; provedou se v každé otáčce. Chybějící nebo špatné odsazení znamená, že se příkaz do opakování vůbec nedostane.
range a počet otáček
range(n) dává n hodnot 0 až n−1, proto se tělo provede nkrát. Žák počet nehádá z „posledního čísla na obrazovce“, ale spočítá délku rozsahu.
Řídicí proměnná
Jméno za for (často i), které v každé otáčce drží aktuální hodnotu z rozsahu. Dá se v těle použít, ale není nutné ji tisknout, když úloha jen opakuje stejný výpočet.
Porovnání s blokovým opakováním
Blok „opakuj Nkrát“ a for s range(N) řeší stejný záměr. V Pythonu N není „poslední vytištěné číslo“, ale počet hodnot, které range vydá.
Řízení výpočtu
Změnou rozsahu a příkazů v těle žák mění, kolikrát a s jakými hodnotami se výpočet provede, aniž by příkazy kopíroval pod sebe.
Kontrola počtem provedení
Před spuštěním žák napíše očekávaný počet otáček a očekávaný výstup; po běhu porovná. Nesoulad se hledá v rozsahu, odsazení nebo v tom, co se mění uvnitř těla.

Časté miskoncepce

  • Častá chyba

    Žák napíše for i in range(5) a čeká, že se vytiskne 1 až 5 nebo že poslední otáčka má i rovno 5.

    Jak na to

    Na tabuli vypište hodnoty, které range(5) skutečně vydá (0, 1, 2, 3, 4). Žáci nejdřív ručně dopočítají pět otáček, teprve pak spustí print(i).

  • Častá chyba

    Žák dá print nebo přičtení na stejnou úroveň jako for, takže se provede jen jednou, a tvrdí, že „cyklus nefunguje“.

    Jak na to

    Ukažte dva stejné programy vedle sebe: jeden s odsazeným tělem, druhý bez. Žáci spočítají, kolikrát se každý print provede, a chybné odsazení sami opraví.

  • Častá chyba

    Žák zamění range(n) za „opakuj od 1 do n“ a u součtu nebo odpočtu dostane o jednu otáčku víc nebo míň.

    Jak na to

    Zadejte úlohu „sečti n čísel z klávesnice“ nebo „vytiskni n hvězdiček“. Nechte predikovat počet vstupů/řádků, spustit a opravit jen argument range.

  • Častá chyba

    Žák si myslí, že for je něco jiného než blokové „opakuj Nkrát“, a skládá stejný příkaz pod sebe místo cyklu.

    Jak na to

    Vezměte starší blokový program s opakováním a zapište ho vedle v Pythonu. Žáci spočítají otáčky v obou zápisech a potvrdí, že řeší stejný problém.

Jak učit

2–3 hodiny

  1. Evokace: ukažte blok „opakuj 4krát“ a zeptejte se, kolikrát se tělo provede a jak by to znělo slovy „pro každou hodnotu…“.
  2. Jádro: společně zapište for s range, odsazené tělo a na papíře stopujte hodnoty řídicí proměnné; pak žáci mění jen číslo v range a ověřují počet běhů.
  3. Reflexe: žáci u dvou krátkých programů (správné a chybné odsazení nebo range) napíší počet provedení těla a problém, který program řeší.

Nápady na aktivity

  • Párové stopování: jeden žák čte for i in range(…), druhý na papír zapisuje i a výstup; poté prohodí role u programu s jiným range.
  • Úloha na řízení: ze stejného těla (tisk hvězdičky nebo přičtení k součtu) žáci nastaví range tak, aby výstup měl přesně zadaný počet řádků nebo sčítanců.

Hodnocení

Žák u daného for s range ústně nebo písemně určí počet provedení těla a hodnoty řídicí proměnné (INF-INF-002-ZV9-005).

Žák napíše krátký přehledný program s jedním cyklem for, který zadaný výpočet zopakuje správný početkrát, a opraví chybu v odsazení nebo v range (INF-INF-002-ZV9-007).

Související témata

Zdroje

Co pro vás ScioBot připraví k tématu Python: cyklus for a řízení výpočtu

Interaktivní aktivity, které žáci spustí na tabletu či tabuli, tisknutelné kartičky a hry pro celou třídu – každý formát na téma Python: cyklus for a řízení výpočtu jedním klikem.

Základní materiály

Interaktivní aktivity 14

K tisku a rozstříhání 8

Hry pro celou třídu 4

Očekávané výstupy

  • INF-INF-002-ZV9-005 Po přečtení jednotlivých kroků algoritmu vysvětlí celý postup a určí problém, který je daným algoritmem řešen.
  • INF-INF-002-ZV9-007 V blokově orientovaném programovacím jazyce vytvoří přehledný program, používá opakování, větvení programu, proměnné.

Téma v dalších ročnících: 8. třída

Učíte Python: cyklus for a řízení výpočtu 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.

Napsat ScioBotu

Související témata