IT rekvalifikácia. Seniorní programátori zarábajú až 6 000 €/mesiac a rekvalifikácia je prvým krokom. Zisti, ako na to!

7. diel - Podmienky (vetvenie) v Scratchi

V minulej lekcii, Jednoduchá kalkulačka v Scratchi , sme si vytvorili jednoduchú kalkulačku a ukázali si chyby, ktorých sa pri práci s premennými vyvarovať.

Vo väčšine programov potrebujeme nejako reagovať na rôzne situácie. Môže to byť napríklad hodnota zadaná užívateľom, podľa ktorej budeme chcieť meniť ďalšie správanie programu. Hovoríme, že sa program konárov a vetvenia používame podmienky. Tým sa budeme venovať celý dnešný Scratch tutoriál. Nakoniec vytvoríme program, ktorý nám povie, či sme dospelí, alebo nie.

Podmienka v bloku keď ... tak

Podmienku nájdeme v blokoch Ovládania. Konkrétne ide o blok keď ... tak. Do prázdneho priestoru medzi keď a tak vkladáme nejaký logický výraz. To je akékoľvek tvrdenie, o ktorom zisťujeme, či je pravdivé, alebo nie je.

Poďme si vyskúšať jednoduchú ukážku. Najprv si ako vždy pridáme do programu blok po kliknutí na (vlajočka), potom pôjdeme do blokov Ovládanie a prilepíme blok keď ... tak:

Blok keď … tak - Scratch

Ďalej sa prepneme na bloky Operátory a medzi slová keď a tak pridáme blok väčší ako. Na pravej strane necháme hodnotu 50 a doľava napíšeme číslo 60:

Operátor 60 väčší ako 50 - Scratch

Potom dovnútra bloku keď ... tak vložíme blok bublina ... sekúnd z blokov Udalosti a text prepíšeme na Podmínka je splněna. Za blok keď... tak vložíme ďalšiu bublina... sekúnd, do ktorej napíšeme A program pokračuje. Celý program bude vyzerať takto:

Program 60 je väčší ako 50 - Scratch

Program si môžeme krásne prečítať. Podmienka hovorí: Keď je 60 väčšia ako 50, tak sa zobrazí bublina, že podmienka je splnená.

Keď program pustíme, naozaj sa tak stane:

Mačičák hovorí, že je podmienka splnená - Scratch

Všetok kód, ktorý je mimo blok keď ... tak sa vykoná vždy. Skúsme si namiesto 60 napísať na ľavú stranu napríklad číslo 40 a program znova spustíme. Podmienka nie je splnená, pretože 40 nie je väčšia ako 50. Všetko, čo je vo vnútri podmienky sa teda preskočí, ale veta A program pokračuje. sa vypíše 😉

Načítanie užívateľského vstupu

V podmienke môžeme samozrejme načítať aj hodnotu od používateľa. Pridáme si pred blok keď ... tak z blokov Vnímanie blok otázka. V otázke vyzveme používateľa, aby sám zadal nejaké číslo. Namiesto čísla na ľavej strane bloku je väčšia potom dáme blok odpoveď:

Program zadané číslo je väčší ako 50 - Scratch

Teraz budeme môcť reagovať a meniť správanie programu podľa toho, aké číslo zadá používateľ 🙂 Poďme si to vyskúšať:

Mačičák určuje, či je používateľovo číslo väčšie ako 50 - Scratch

Relačné operátory

Ukážme si teraz relačné operátory, ktoré môžeme vo výrazoch používať.

Väčšia ako

Tento operátor sme si už vyskúšali. Podmienka je splnená, ak je číslo na ľavej strane väčšie ako číslo na pravej strane:

Blok väčší ako - Scratch

Menšie ako

Tento operátor je pravdivý, ak je číslo na ľavej strane menšie ako číslo na pravej strane:

Blok menší ako - Scratch

Je rovné

Ďalší operátor porovnáva, či sú hodnoty na oboch stranách rovnítka rovnaké. Potom je podmienka splnená:

Blok rovný - Scratch

Porovnávať pomocou operátora ich rovno môžeme aj textový reťazec. Obe hodnoty ale musia byť úplne presne rovnaké. Pokiaľ napríklad napíšeme na jednu stranu slovo Ahoj a na druhej strane budeme mať rovnaký text s medzerou na konci, podmienka sa nesplní 😉

Obsahuje

Posledným operátorom, ktorý si dnes ukážeme je operátor obsahuje. Pomocou neho zisťujeme, či dané slovo obsahuje písmeno, alebo časť textu z pravej strany. Operátor bude pravdivý, ak napríklad zapíšeme kočka obsahuje k alebo vyhraný obsahuje hra:

Blok obsahuje - Scratch

Podmienka v bloku keď ... tak ... inak

Poďme sa teraz zamyslieť, ako to zariadiť, aby program naopak niečo urobil, iba ak sa podmienka nesplní. Keby sme nad tým premýšľali, možno by niektoré z nás napadlo riešenie, ktoré vyzerá takto:

Program na princípe keď … tak … inak bez bloku inak - Scratch

Taký kód by naozaj fungoval a pokiaľ vás takéto riešenie napadlo, určite si zaslúžite pochvalu 😉

Riešiť všetky podmienky týmto spôsobom by však niekedy bolo veľmi zložité. Mohlo by sa totiž stať, že podmienku nadefinujeme zle a neošetríme napríklad, čo sa má stať, keď zadáme číslo 50. Taký program je skrátka veľmi citlivý na chybu programátora a navyše pôsobí neprehľadne. Ide to teda urobiť aj lepšie? Áno 🙂 Scratch nám pre takéto prípady ponúka blok keď... tak... inak.

Program zisťujúci, či sme dospelí

Poďme si skúsiť urobiť program, kde sa nás mačičák spýta, koľko nám je rokov. Pokiaľ nám bude 18 a viac, tak nám povie, že sme dospelí. Pokiaľ nám bude menej, odpovie, že dospelí nie sme.

Začiatok programu bude rovnaký ako pri predchádzajúcom príklade na podmienky, kde užívateľ zadával číslo na porovnanie. Začneme blokom po kliknutí na (vlajočka) a za ten nalepíme otázku Kolik ti je let?:

Začiatok programu koľko ti je rokov - Scratch

Teraz príde drobná zmena a miesto bloku keď ... tak prilepíme za náš program z blokov Ovládanie blok keď ... tak ... inak:

Blok keď tak inak - Scratch

Medzi slová keď a tak vložíme z Operátorov blok väčší ako a na ľavú stranu vložíme z blokov Vnímanie blok odpoveď:

Odpoveď je väčšia ako 50 v bloku keď tak inak - Scratch

Teraz musíme programu povedať, že chceme, aby nás vyhlásil za dospelých, ak nám je 18 a viac. Dúfam, že sa nikto zbrkle nepustil do programovania a nenapísal miesto čísla 50 číslo 18 🙂 Ak však niekto v programovaní predbiehal a napísal miesto 50 číslo 17, zaslúži si veľkú pochvalu 😉

Vráťme sa však k číslu 18. Čo by to vlastne znamenalo? Ak nám už bolo 18, sme dospelí. Ale program s podmienkou odpoveď väčšia ako 18 berie ako dospelé osoby ľudí, ktorým je viac ako 18. Človeka, ktorému je 18, by tak náš program bral ešte za nedospelého a dospelý by bol človek až od 19 rokov 😉 Ak teda chceme, aby náš program pracoval správne, musíme namiesto čísla 50 napísať číslo 17. Keď teraz zadáme ako náš vek číslo 18, podmienka bude tým pádom splnená a program nás správne vyhlási za dospelého.

To je len ďalšia ukážka toho, že sa pomaly dostávame k čoraz zaujímavejším programátorským kúzlom, ktoré ale vyžadujú viac premýšľania 😉

Poďme teda namiesto 50 doplniť číslo 17:

Správne doplnené číslo 17 v bloku keď tak inak - Scratch

Nakoniec pridáme bubliny, ktoré nám na základe nášho veku povedia, či sme dospelí:

Program na určenie dospelosti - Scratch

Keď teraz program pustíme, mačičák naozaj spozná na základe veku, či sme dospelí, alebo nie:

Mačičák určuje dospelosť užívateľa - Scratch

V budúcej lekcii, Podmienky (vetvenie) druhýkrát: Vysielanie správ v Scratchi , sa naučíme skladať podmienky pomocou logických operátorov a naučíme sa v Scratch aplikáciách využiť vysielanie správ.


 

Predchádzajúci článok
Jednoduchá kalkulačka v Scratchi
Všetky články v sekcii
Scratch
Preskočiť článok
(neodporúčame)
Podmienky (vetvenie) druhýkrát: Vysielanie správ v Scratchi
Článok pre vás napísal PDoctor
Avatar
Užívateľské hodnotenie:
Ešte nikto nehodnotil, buď prvý!
Aktivity