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 7 - Podmínky (větvení) ve Scratchi

V minulé lekci, Jednoduchá kalkulačka ve Scratchi, jsme si vytvořili jednoduchou kalkulačku a ukázali si chyby, kterých se při práci s proměnnými vyvarovat.

Ve většině programů potřebujeme nějak reagovat na různé situace. Může to být například hodnota zadaná uživatelem, podle které budeme chtít měnit další chování programu. Říkáme, že se program větví a k větvení používáme podmínky. Těm se budeme věnovat celý dnešní Scratch tutoriál. Nakonec vytvoříme program, který nám řekne, jestli jsme dospělí, nebo ne.

Podmínka v bloku když ... tak

Podmínku najdeme v blocích Ovládání. Konkrétně jde o blok když ... tak. Do prázdného prostoru mezi když a tak vkládáme nějaký logický výraz. To je jakékoli tvrzení, o kterém zjišťujeme, zda je pravdivé, nebo není.

Pojďme si vyzkoušet jednoduchou ukázku. Nejprve si jako vždy přidáme do programu blok po kliknutí na (vlaječka), potom půjdeme do bloků Ovládání a přilepíme blok když ... tak:

Blok když … tak - Scratch

Dále se přepneme na bloky Operátory a mezi slova když a tak přidáme blok větší než. Na pravé straně necháme hodnotu 50 a doleva napíšeme číslo 60:

Operátor 60 větší než 50 - Scratch

Potom dovnitř bloku když ... tak vložíme blok bublina ... sekund z bloků Události a text přepíšeme na Podmínka je splněna. Za blok když ... tak vložíme další bublina ... sekund, do které napíšeme A program pokračuje. Celý program bude vypadat takto:

Program 60 je větší než 50 - Scratch

Program si můžeme krásně přečíst. Podmínka říká: Když je 60 větší než 50, tak se zobrazí bublina, že podmínka je splněna.

Když program pustíme, opravdu se tak stane:

Kočičák říká, že je podmínka splněna - Scratch

Všechen kód, který je mimo blok když ... tak se provede vždy. Zkusme si místo 60 napsat na levou stranu třeba číslo 40 a program znovu spusťme. Podmínka není splněna, protože 40 není větší než 50. Všechno, co je uvnitř podmínky se tedy přeskočí, ale věta A program pokračuje. se vypíše 😉

Načtení uživatelského vstupu

V podmínce můžeme samozřejmě načítat i hodnotu od uživatele. Přidáme si před blok když ... tak z bloků Vnímání blok otázka. V otázce vyzveme uživatele, aby sám zadal nějaké číslo. Místo čísla na levé straně bloku je větší potom dáme blok odpověď:

Program zadané číslo je větší než 50 - Scratch

Teď budeme moci reagovat a měnit chování programu podle toho, jaké číslo zadá uživatel 🙂 Pojďme si to vyzkoušet:

Kočičák určuje, jestli je uživatelovo číslo větší než 50 - Scratch

Relační operátory

Ukažme si nyní relační operátory, které můžeme ve výrazech používat.

Větší než

Tento operátor jsme si již vyzkoušeli. Podmínka je splněna, pokud je číslo na levé straně větší než číslo na pravé straně:

Blok větší než - Scratch

Menší než

Tento operátor je pravdivý, pokud je číslo na levé straně menší než číslo na pravé straně:

Blok menší než - Scratch

Je rovno

Další operátor porovnává, zda jsou hodnoty na obou stranách rovnítka stejné. Poté je podmínka splněna:

Blok rovno - Scratch

Porovnávat pomocí operátoru je rovno můžeme i textový řetězec. Obě hodnoty ale musejí být úplně přesně stejné. Pokud například napíšeme na jednu stranu slovo Ahoj a na druhé straně budeme mít stejný text s mezerou na konci, podmínka se nesplní 😉

Obsahuje

Posledním operátorem, který si dnes ukážeme, je operátor obsahuje. Pomocí něho zjišťujeme, zda dané slovo obsahuje písmeno, nebo část textu z pravé strany. Operátor bude pravdivý, pokud například zapíšeme kočka obsahuje k nebo vyhraný obsahuje hra:

Blok obsahuje - Scratch

Podmínka v bloku když ... tak ... jinak

Pojďme se teď zamyslet, jak to zařídit, aby program naopak něco udělal, pouze pokud se podmínka nesplní. Kdybychom nad tím přemýšleli, možná by některé z nás napadlo řešení, které vypadá takto:

Program na principu když … tak … jinak bez bloku jinak - Scratch

Takový kód by opravdu fungoval a pokud vás takové řešení napadlo, určitě si zasloužíte pochvalu 😉

Řešit všechny podmínky tímto způsobem by však někdy bylo velice složité. Mohlo by se totiž stát, že podmínku nadefinujeme špatně a neošetříme například, co se má stát, když zadáme číslo 50. Takový program je zkrátka velmi citlivý na chybu programátora, a navíc působí nepřehledně. Jde to tedy udělat i lépe? Ano 🙂 Scratch nám pro takové případy nabízí blok když ... tak ... jinak.

Program zjišťující, zda jsme dospělí

Pojďme si zkusit udělat program, kde se nás kočičák zeptá, kolik nám je let. Pokud nám bude 18 a více, tak nám poví, že jsme dospělí. Pokud nám bude méně, odpoví, že dospělí nejsme.

Začátek programu bude stejný jako u předchozího příkladu na podmínky, kde uživatel zadával číslo k porovnání. Začneme blokem po kliknutí na (vlaječka) a za ten nalepíme otázku Kolik ti je let?:

Začátek programu kolik ti je let - Scratch

Teď přijde drobná změna a místo bloku když ... tak přilepíme za náš program z bloků Ovládání blok když ... tak ... jinak:

Blok když tak jinak - Scratch

Mezi slova když a tak vložíme z Operátorů blok větší než a na levou stranu vložíme z bloků Vnímání blok odpověď:

Odpověď je větší než 50 v bloku když tak jinak - Scratch

Teď musíme programu povědět, že chceme, aby nás prohlásil za dospělé, pokud nám je 18 a více. Doufám, že se nikdo zbrkle nepustil do programování a nenapsal místo čísla 50 číslo 18 🙂 Pokud ovšem někdo v programování předbíhal a napsal místo 50 číslo 17, zaslouží si velkou pochvalu 😉

Vraťme se však k číslu 18. Co by to vlastně znamenalo? Jestliže nám už bylo 18, jsme dospělí. Ale program s podmínkou odpověď větší než 18 bere jako dospělé osoby lidi, kterým je více než 18. Člověka, kterému je 18, by tak náš program bral ještě za nedospělého a dospělý by byl člověk až od 19 let 😉 Pokud tedy chceme, aby náš program pracoval správně, musíme místo čísla 50 napsat číslo 17. Když teď zadáme jako náš věk číslo 18, podmínka bude tím pádem splněna a program nás správně prohlásí za dospělého.

To je jen další ukázka toho, že se pomalu dostáváme k čím dál zajímavějším programátorským kouzlům, která ale vyžadují více přemýšlení 😉

Pojďme tedy místo 50 doplnit číslo 17:

Správně doplněné číslo 17 v bloku když tak jinak - Scratch

Nakonec přidáme bubliny, které nám na základě našeho věku řeknou, zda jsme dospělí:

Program pro určení dospělosti - Scratch

Když teď program pustíme, kočičák opravdu pozná na základě věku, jestli jsme dospělí, nebo ne:

Kočičák určuje dospělost uživatele - Scratch

V příští lekci, Podmínky (větvení) podruhé: Vysílání zpráv ve Scratchi, se naučíme skládat podmínky pomocí logických operátorů a naučíme se ve Scratch aplikacích využít vysílání zpráv.


 

Předchozí článek
Jednoduchá kalkulačka ve Scratchi
Všechny články v sekci
Scratch
Přeskočit článek
(nedoporučujeme)
Podmínky (větvení) podruhé: Vysílání zpráv ve Scratchi
Článek pro vás napsal PDoctor
Avatar
Uživatelské hodnocení:
6 hlasů
Aktivity