NOVINKA - Online rekvalifikační kurz Python programátor. Oblíbená a studenty ověřená rekvalifikace - nyní i online.
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 8 - Podmínky (větvení) podruhé: Vysílání zpráv ve Scratchi

V minulé lekci, Podmínky (větvení) ve Scratchi, jsme si ukázali, jak v našich programech využijeme podmínky a vytvořili jsme program, který podle zadaného věku určil, zda jsme dospělí.

V dnešním Scratch tutoriálu se naučíme skládat podmínky za pomoci logických operátorů. Následně se podíváme na využití zasílání zpráv a vytvoříme novou kalkulačku, kde si uživatel sám vybere početní operaci, která se má provést.

Skládání podmínek

Podmínky je možné skládat pomocí dvou základních logických operátorů.

Operátor A zároveň

Tato podmínka je splněna, pokud jsou splněny podmínky na obou stranách operátoru:

Blok A zároveň - Scratch

Operátor Nebo

Ke splnění podmínky nebo stačí, aby byla splněna podmínka alespoň na jedné straně:

Blok Nebo - Scratch

Ve stejné skupině je ve vývojovém prostředí Scratche ještě operátor ne, který podmínku tzv. zneguje. To znamená, že pravdivou podmínku vyhodnotí jako nepravdivou a naopak.

Určení rozsahu čísel

Uveďme si jednoduchý příklad. Vyzveme uživatele, aby zadal číslo od 10 do 20. Zadání poté program zkontroluje a vypíše, zda proběhlo správně:

Kód programu na zadání čísla v rozmezí - Scratch

Podmínka v tomto kódu bude splněna, pokud uživatel nezadá číslo menší než 10 ani číslo větší než 20. V takovém případě vypíše Zadal jsi správně. Kdybychom instrukce neposlechli, vypíše Zadal jsi špatně.

Proč v dílčích podmínkách používáme místo uvedených hodnot čísla 9 a 21 již víme. Je to stejný případ, jako v našem programu pro určení dospělosti 🙂

Když program spustíme, vidíme, že kočičák správně posoudí, zda jsme dodrželi zadání:

Kočičák považuje za správná jenom čísla 10 – 20 - Scratch

Operátory se pomocí vlepování do sebe dají samozřejmě kombinovat:

Kód programu na zadání čísla ve dvou rozmezích - Scratch

Tento kód, jak určitě vyčtete, by považoval za správná buď čísla 10 - 20, nebo čísla 30 - 40 😉

Vysílání zpráv

I když to tak může znít, nebudeme teď komunikovat s marťany, ani si s nikým dopisovat 🙂 Vysílání zpráv ve Scratchi nám umožní skákat do různých menších programů. Tím si můžeme kód zpřehlednit. Vzpomeňme si na naši kalkulačku v prvních lekcích, která načetla dvě čísla a vypočítala všechny čtyři operace.

Nyní si vytvoříme novou kalkulačku, v níž si budeme chtít zvolit, kterou operaci má provést.

Kalkulačka s využitím podmínek

Bez vysílání zpráv bychom nejprve napsali:

Začátek kódu programu kalkulačky s operátory pomocí čísel - Scratch

V druhé části bychom pak doplnili podmínky pro všechny čtyři operace i pro případ, že uživatel zadá jiné číslo. A nakonec v bublinách připojili výpisy:

Pokračování kódu programu kalkulačky s operátory pomocí čísel - Scratch

Po spuštění kalkulačky a zadání hodnot bude vypadat výstup takto:

Program kalkulačka s možností volby operátoru - Scratch

Jak vidíme, kód je poměrně obsáhlý. Na začátku načteme klasicky dvě čísla. Potom nám kočičák řekne, jaké operace s nimi můžeme provádět. Zadáme číslo operace, kterou chceme vykonat a program podle toho určí výsledek. Ošetřili jsme také případ, že vybereme neplatný operátor 😉

Program by v tomto případě fungoval, i kdybychom použili jenom bloky když ... tak. Je ale zbytečné, aby se program ptal stylem: Je operátor 1? Ano. Je operátor 2? Ne. A tak dále, což je samozřejmě nesmysl 🙂 Hned po první odpovědi je už totiž jasné, že operátor je jedna. Bez bloku jinak by ale program takto pokračoval.

Kalkulačka s vysíláním zpráv

Nyní si zkusíme napsat ten samý kód pomocí zasílání zpráv. Použijeme stejný kód, jako u předchozí verze programu, jenom uděláme pár změn.

Přejdeme do bloků Události a přetáhneme si stranou čtyři bloky vyšli zprávu a čekej a po obdržení zprávy:

Čtyři bloky vysílání a přijímání zpráv - Scratch

Potom si vytvoříme čtyři různé zprávy. Budou to zprávy plus, minus, krat a deleno. U bloků vyšli zprávu klikneme na rozbalovací roletku a potom na Nová zpráva, potom už pokračujeme jako při tvorbě proměnných:

Tvorba nové zprávy roletka - Scratch

Teď si dáme na stranu všechny bloky, kde nastavujeme proměnnou vysledek a místo nich nalepíme bloky, které vysílají zprávy:

Záměna bloků nastav výsledek na vyšli zprávu - Scratch

Nakonec nalepíme na bloky po obdržení zprávy bloky nastav ... na s proměnnou vysledek, které jsme před chvílí z podmínek dali stranou:

Tvorba bloků po obdržení zprávy - Scratch

Když teď program spustíme, bude fungovat úplně stejně jako původní kód. Možná si tedy říkáte, že použití bloků vyšli zprávu je celkem zbytečné, protože jsme si do programu jenom přidali další bloky navíc. A máte pravdu 😅 Co kdybychom ale místo pouhého nastavování proměnné vysledek chtěli vykonat dalších deset příkazů u každého bloku? A co kdyby ty bloky nebyly čtyři (plus, mínus, krát, děleno), ale bylo by jich třeba deset?

Představme si například, že tvoříme program, ve kterém si uživatel vybere jednu z deseti barev. My v něm následně necháme změnit barvu všech objektů v naší scéně s kočičákem. To už by nebyl jenom jeden blok kódu, ale rovnou třeba 15 pro každou barvu. Vynásobme to deseti barvami a dostaneme 150 bloků kódu, které by byly v programu někde pod sebou a my bychom je museli při úpravě složitě hledat. V takovém programu by už nebylo použití zpráv poměrně zbytečné jako v naší jednoduché kalkulačce, ale bylo by v podstatě nutností, abychom se z hledání bloků nezbláznili 😉

V následujícím cvičení, Řešené úlohy k 5.-8. lekci Scratche, si procvičíme nabyté zkušenosti z předchozích lekcí.


 

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

 

Předchozí článek
Podmínky (větvení) ve Scratchi
Všechny články v sekci
Scratch
Přeskočit článek
(nedoporučujeme)
Řešené úlohy k 5.-8. lekci Scratche
Článek pro vás napsal PDoctor
Avatar
Uživatelské hodnocení:
9 hlasů
Aktivity