Vydělávej až 160.000 Kč měsíčně! Akreditované rekvalifikační kurzy s garancí práce od 0 Kč. Více informací.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

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ě:

Blok opakuj krát - Scratch

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:

Program klepání bez cyklu - Scratch

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:

Program klepání s cyklu - Scratch

Po spuštění programu uvidíme tento výstup:

Kočičák je rád, že není pes - Scratch

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:

Program řada začátek - Scratch

Potom si vytvoříme proměnnou i a zadáme ji jako počet opakování:

Program řada cyklus s proměnnou - Scratch

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:

Program řada cyklus s proměnnou a bublinou - Scratch

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:

Program řada cyklus s proměnnou nastavenou na 10 - Scratch

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:

Program řada cyklus s proměnnou, která se zmenšuje - Scratch

Nakonec do bubliny místo textu Ahoj! vložíme naši proměnnou:

Program řada cyklus, který vypisuje proměnnou - Scratch

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:

Program řada cyklus, který vypisuje proměnnou správně - Scratch

Když teď program spustíme, vidíme, že kočičák počítá správně:

Kočičák počítá od 1 do 10 - Scratch

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:

Program vnořené cykly - Scratch

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:

Program vnořené cykly se změnou barvy - Scratch

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:

Program vnořené cykly se změnou barvy a čekáním - Scratch

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:

Kočičák mění barvy - Scratch

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 12x (124.15 kB)
Aplikace je včetně zdrojových kódů v jazyce Scratch

 

Předchozí článek
Kvíz - Načítání vstupů a podmínky ve Scratchi
Všechny články v sekci
Scratch
Přeskočit článek
(nedoporučujeme)
Cyklus s neznámým počtem opakování ve Scratchi
Článek pro vás napsal PDoctor
Avatar
Uživatelské hodnocení:
5 hlasů
Aktivity