9. diel - Cyklus s pevným počtom opakovaní v Scratchi
V minulej lekcii, Podmienky (vetvenie) druhýkrát: Vysielanie správ v Scratchi , sme sa naučili skladať podmienky pomocou logických operátorov.
V dnešnom tutoriále sa naučíme pracovať s cyklami. Vytvoríme niekoľko jednoduchých príkladov, na ktorých si ukážeme, na čo cykly slúžia. Potom budeme mať takmer kompletnú výbavu základných konštrukcií a budeme schopní programovať rozumné aplikácie v Scratchi.
Cykly
Ako už slovo cyklus napovie, niečo sa bude opakovať. Keď chceme v programe niečo urobiť 100x, určite nebudeme písať pod seba 100x ten istý kód, ale vložíme ho do cyklu. Cyklov máme niekoľko druhov, dnes sa zameriame na cyklus opakuj ... krát.
Cyklus opakuj ... krát
Tento cyklus má stanovený pevný počet opakovaní. Blok cyklu opakuj ... krát nájdeme v blokoch Ovládanie a vyzerá nasledovne:
Počet opakovaní cyklu sa určuje hodnotou, ktorú vyplníme.
Nemusíme pritom zadávať len číslo, ale môžeme použiť napríklad aj blok odpoveď, alebo nejakú premennú 😉
Poďme si urobiť niekoľko jednoduchých príkladov na precvičenie tohto cyklu.
Klepanie pre šťastie
Možno viete, že keď nechceme niečo zrieknuť, malo by sa trikrát
zaklopať. Náš mačičák je rád, že nie je pes, pretože neznáša blato a
väčšina psov sa v blate pokojne vyvaľká a vôbec im to nevadí 🙂 Poďme
urobiť program, kde si mačičák povie Ještě, že nejsem pes.
a
potom trikrát zaklope klep
, klep
, klep
.
S našimi znalosťami, ktoré máme teraz, by program vyzeral takto:
My ale už nič nemusíme otrocky opisovať, výpis klep
vložíme do cyklu opakuj ... krát a počet opakovaní nastavíme na
3
:
Po spustení programu uvidíme tento výstup:
Po spustení sa vypíše hláška, že mačičák nie je pes. Potom program
vojde do cyklu, ktorý sa opakuje trikrát a vždy sa zobrazí rovnaká bublina
s textom klep
. Tu to síce nie je veľmi vidieť, pretože sa
stále zobrazuje tá istá hláška, ale cyklus naozaj prebehne trikrát
🙂
Rad čísel
Poďme sa teraz s naším cyklom trochu pohrať. Predstavme si, že chceme,
aby mačičák počítal od 1
do 10
. Bez cyklov by sme
jednoducho pod seba poskladali bubliny so zodpovedajúcimi číslami. Ako to ale
urobiť s cyklom? Musíme nejako sledovať, po koľkýkrát cyklus beží a toto
číslo vypísať. Na to budeme potrebovať vlastnú premennú. Poďme na to
😉
Začneme klasicky, umiestnime si do programu štartovací blok a naň nalepíme cyklus opakuj ... krát:
Potom si vytvoríme premennú i
a zadáme ju ako počet
opakovaní:
Ďalej do cyklu umiestnime bublinu, ktorá bude hovoriť, po koľkýkrát cyklus beží. To bude trochu komplikovanejšie, takže si zatiaľ len pripravíme bublinu:
Teraz bude potrebné nastaviť našu premennú na nejakú hodnotu.
Blok pre nastavenie premennej, nájdeme v blokoch Premenné 🙂.
My budeme chcieť opakovať cyklus desaťkrát, takže ešte pred
tým, než program spustí cyklus nastavíme premennú i
na 10
:
Premennú musíme nastaviť pred tým, než
sa spustí cyklus. Keby sme to neurobili, tak premenná zostane 0
a
cyklus sa bude opakovať nulakrát, to znamená, že sa vôbec nespustí
😉
Teraz je potrebné, aby sa naša premenná zakaždým zmenšila o
1
. To urobíme pomocou bloku zmeň o ..., ktorý nájdeme
v blokoch Premenné. Hodnotu nastavíme na -1
:
Nakoniec do bubliny namiesto textu Ahoj!
vložíme našu
premennú:
Keby sme teraz náš program pustili, mačičák by síce počítal, ale
pospiatky 😅 Začal by vypisovať 10
, 9
,
8
a tak ďalej! Musíme sa teda ešte zamyslieť, ako docieliť to,
aby počítal správne od 1
do 10
.
Chceme, aby sa namiesto čísla 10
zobrazovalo číslo
1
; miesto 9
chceme vypísať 2
, miesto
8
číslo 3
... Odpoveďou je, že číslo musíme
odpočítať od 11
😉 Môžeme si to v rýchlosti
prekontrolovať: 11 - 10 = 1
, 11 - 9 = 2
...
Poďme teda náš príklad ešte upraviť. Do bubliny si namiesto premennej
i
pretiahneme operátor mínus, ktorý bude mať na pravej
strane premennú i
a na ľavej strane číslo 11
:
Keď teraz program spustíme, vidíme, že mačičák počíta správne:
Farebný mačičiak
Ako posledný si poďme ukázať vnorený cyklus. Cykly do seba môžeme vnárať. To znamená, že jeden cyklus umiestnime do iného. To má za následok, že pri každom behu vonkajšieho cyklu sa vykoná celý vnútorný cyklus. Poďme si to ukázať na príklade 🙂 Budeme trikrát zafarbovať mačičiaka štyrmi farbami, a zakaždým ho vrátime späť do jeho zdravej, oranžovej 😉
Začneme tak, že si umiestnime štartovací blok, pod neho prilepíme cyklus a do neho dáme ďalší cyklus:
Vonkajší cyklus nastavíme na tri opakovania a vnútorné na štyri. Teraz
umiestnime do vnútorného cyklu blok zmeň efekt farba o ... z blokov
Vzhľad a nastavíme mu hodnotu 25
. Rovnaký blok ešte
pridáme hneď za vnútorný cyklus, len tentoraz nebude zmena
o 25
, ale o -100
:
Aby sme výsledok lepšie videli, ešte za každý blok zmeň efekt farba
o ... nalepíme blok čakaj ... sekúnd z blokov
Ovládanie av každom počkáme 1
sekundu:
Keď program pustíme, mačičák zmení celkom trikrát farby. Vždy sa zafarbí štyrikrát inak, potom sa sfarbí späť na oranžovú. Následne začne znovu zafarbovanie do štyroch farieb:
Tu krásne vidíme, že keď sa spustí vonkajší cyklus, tak sa najprv vykoná celý vnútorný cyklus (mačičiak štyrikrát zmení farbu), a až potom sa vykoná zvyšok vonkajšieho cyklu (mačičiak sa sfarbí späť) a pokračuje sa opakovaním vonkajšieho cyklu 😉
Zdrojové súbory, ktoré boli použité v dnešnej lekcii nájdete na stiahnutie v prílohe.
V budúcej lekcii, Cyklus s neznámym počtom opakovaní v Scratchi , sa budeme ešte venovať cyklom. Naučíme sa používať najmä cyklus opakuj kým nenastane a vďaka nemu zase trošku vylepšíme našu kalkulačku.
Mal si s čímkoľvek problém? Stiahni si vzorovú aplikáciu nižšie a porovnaj ju so svojím projektom, chybu tak ľahko nájdeš.
Stiahnuť
Stiahnutím nasledujúceho súboru súhlasíš s licenčnými podmienkami
Stiahnuté 15x (124.15 kB)
Aplikácia je vrátane zdrojových kódov v jazyku Scratch