Lekce 9 - Cyklus s pevným počtem opakování ve Scratchi
V předchozím kvízu, Kvíz - Načítání vstupů a podmínky ve Scratchi, jsme si ověřili nabyté zkušenosti z předchozích lekcí.
V dnešním tutoriálu se naučíme pracovat s cykly. Vytvoříme několik jednoduchých příkladů, na kterých si ukážeme, k čemu cykly slouží. Poté budeme mít téměř kompletní výbavu základních konstrukcí a budeme schopni programovat rozumné aplikace ve Scratchi.
Cykly
Jak již slovo cyklus napoví, něco se bude opakovat. Když chceme v programu něco udělat 100x, jistě nebudeme psát pod sebe 100x ten samý kód, ale vložíme ho do cyklu. Cyklů máme několik druhů, dnes se zaměříme na cyklus opakuj ... krát.
Cyklus opakuj ... krát
Tento cyklus má stanovený pevný počet opakování. Blok cyklu opakuj ... krát najdeme v blocích Ovládání a vypadá následovně:
Počet opakování cyklu se určuje hodnotou, kterou vyplníme.
Nemusíme přitom zadávat jen číslo, ale můžeme použít například i blok odpověď, nebo nějakou proměnnou 😉
Pojďme si udělat několik jednoduchých příkladů na procvičení tohoto cyklu.
Klepání pro štěstí
Možná víte, že když nechceme něco zařeknout, mělo by se třikrát
zaklepat. Náš kočičák je rád, že není pes, protože nesnáší bláto a
většina psů se v blátě klidně vyválí a vůbec jim to nevadí 🙂
Pojďme udělat program, kde si kočičák řekne
Ještě, že nejsem pes.
a potom třikrát zaklepe
klep
, klep
, klep
. S našimi znalostmi,
které máme teď, by program vypadal takto:
My ale už nic nemusíme otrocky opisovat, výpis klep
vložíme
do cyklu opakuj ... krát a počet opakování nastavíme na
3
:
Po spuštění programu uvidíme tento výstup:
Po spuštění se vypíše hláška, že kočičák není pes. Potom program
vejde do cyklu, který se opakuje třikrát a vždy se zobrazí stejná bublina
s textem klep
. Tady to sice není moc vidět, protože se pořád
zobrazuje ta stejná hláška, nicméně cyklus opravdu proběhne třikrát
🙂
Řada čísel
Pojďme si teď s naším cyklem trochu pohrát. Představme si, že chceme,
aby kočičák počítal od 1
do 10
. Bez cyklů bychom
prostě pod sebe poskládali bubliny s odpovídajícími čísly. Jak to ale
udělat s cyklem? Musíme nějak sledovat, po kolikáté cyklus běží a tohle
číslo vypsat. K tomu budeme potřebovat vlastní proměnnou. Pojďme na to
😉
Začneme klasicky, umístíme si do programu startovací blok a na něj nalepíme cyklus opakuj ... krát:
Potom si vytvoříme proměnnou i
a zadáme ji jako počet
opakování:
Dále do cyklu umístíme bublinu, která bude říkat, po kolikáté cyklus běží. To bude trochu komplikovanější, takže si zatím jen připravíme bublinu:
Teď bude potřeba nastavit naši proměnnou na nějakou hodnotu.
Blok pro nastavení proměnné, najdeme v blocích Proměnné 🙂.
My budeme chtít opakovat cyklus desetkrát, takže ještě před
tím, než program spustí cyklus nastavíme proměnnou i
na 10
:
Proměnnou musíme nastavit před tím, než
se spustí cyklus. Kdybychom to neudělali, tak proměnná zůstane
0
a cyklus se bude opakovat nulakrát, to znamená, že se vůbec
nespustí 😉
Nyní je potřeba, aby se naše proměnná pokaždé zmenšila o
1
. To uděláme pomocí bloku změň o ..., který najdeme
v blocích Proměnné. Hodnotu nastavíme na -1
:
Nakonec do bubliny místo textu Ahoj!
vložíme naši
proměnnou:
Kdybychom teď náš program pustili, kočičák by sice počítal, ale
pozpátku 😅 Začal by vypisovat 10
, 9
,
8
a tak dále! Musíme se tedy ještě zamyslet, jak docílit toho,
aby počítal správně od 1
do 10
.
Chceme, aby se místo čísla 10
zobrazovalo číslo
1
; místo 9
chceme vypsat 2
, místo
8
číslo 3
... Odpovědí je, že číslo musíme
odečíst od 11
😉 Můžeme si to v rychlosti překontrolovat:
11 - 10 = 1
, 11 - 9 = 2
...
Pojďme tedy náš příklad ještě upravit. Do bubliny si místo proměnné
i
přetáhneme operátor mínus, který bude mít na
pravé straně proměnnou i
a na levé straně číslo
11
:
Když teď program spustíme, vidíme, že kočičák počítá správně:
Barevný kočičák
Jako poslední si pojďme ukázat vnořený cyklus. Cykly do sebe můžeme vnořovat. To znamená, že jeden cyklus umístíme do jiného. To má za následek, že při každém běhu vnějšího cyklu se provede celý vnitřní cyklus. Pojďme si to ukázat na příkladu 🙂 Budeme třikrát obarvovat kočičáka čtyřmi barvami, a pokaždé ho vrátíme zpět do jeho zdravé, oranžové 😉
Začneme tak, že si umístíme startovací blok, pod něj přilepíme cyklus a do něj dáme další cyklus:
Vnější cyklus nastavíme na tři opakování a vnitřní na čtyři. Teď
umístíme do vnitřního cyklu blok změň efekt barva o ... z bloků
Vzhled a nastavíme mu hodnotu 25
. Stejný blok ještě
přidáme hned za vnitřní cyklus, jen tentokrát nebude
změna o 25
, ale o -100
:
Abychom výsledek lépe viděli, ještě za každý blok změň efekt
barva o ... nalepíme blok čekej ... sekund z bloků
Ovládání a v každém počkáme 1
sekundu:
Když program pustíme, kočičák změní celkem třikrát barvy. Vždy se zabarví čtyřikrát jinak, potom se zbarví zpět na oranžovou. Následně začne znovu zabarvování do čtyř barev:
Tady krásně vidíme, že když se spustí vnější cyklus, tak se nejprve provede celý vnitřní cyklus (kočičák čtyřikrát změní barvu), a pak teprve se provede zbytek vnějšího cyklu (kočičák se zbarví zpět) a pokračuje se opakováním vnějšího cyklu 😉
Zdrojové soubory, které byly použity v dnešní lekci najdete ke stažení v příloze.
V příští lekci, Cyklus s neznámým počtem opakování ve Scratchi, se budeme ještě věnovat cyklům. Naučíme se používat zejména cyklus opakuj dokud nenastane a díky němu zase trošku vylepšíme naši kalkulačku.
Měl jsi s čímkoli problém? Stáhni si vzorovou aplikaci níže a porovnej ji se svým projektem, chybu tak snadno najdeš.
Stáhnout
Stažením následujícího souboru souhlasíš s licenčními podmínkami
Staženo 19x (124.15 kB)
Aplikace je včetně zdrojových kódů v jazyce Scratch