8. diel - Podmienky (vetvenie) druhýkrát: Vysielanie správ v Scratchi
V minulej lekcii, Podmienky (vetvenie) v Scratchi , sme si ukázali, ako v našich programoch využijeme podmienky a vytvorili sme program, ktorý podľa zadaného veku určil, či sme dospelí.
V dnešnom Scratch tutoriále sa naučíme skladať podmienky za pomoci logických operátorov. Následne sa pozrieme na využitie zasielania správ a vytvoríme novú kalkulačku, kde si užívateľ sám vyberie početnú operáciu, ktorá sa má vykonať.
Skladanie podmienok
Podmienky je možné skladať, a to pomocou dvoch základných logických operátorov.
A (zároveň)
Táto podmienka je splnená, pokiaľ sú splnené podmienky na oboch stranách operátora:
Alebo
Na splnenie podmienky alebo stačí, aby bola splnená podmienka aspoň na jednej strane:
V rovnakej skupine je vo vývojovom prostredí Scratche ešte operátor nie, ktorý podmienku tzv. zneguje. To znamená, že pravdivú podmienku vyhodnotí ako nepravdivú a naopak.
Určenie rozsahu čísel
Uveďme si jednoduchý príklad. Vyzveme používateľa, aby zadal číslo od
10
do 20
. Zadanie potom program skontroluje a
vypíše, či prebehlo správne.
Výsledkom bude tento kód:
Podmienka v tomto kóde bude splnená, pokiaľ užívateľ nezadá číslo
menšie ako 10
ani číslo väčšie ako 20
. V takom
prípade vypíše prvú správu. Keby sme inštrukcie neposlúchli, vypíše
program druhú správu.
Prečo v čiastkových podmienkach používame namiesto
uvedených hodnôt čísla 9
a 21
už vieme. Je to
rovnaký prípad, ako v našom programe
na určenie dospelosti 🙂
Keď program spustíme, vidíme, že mačičák správne posúdi, či sme dodržali zadanie:
Operátory sa pomocou vlepovania do seba dajú samozrejme kombinovať:
Tento kód, ako určite vyčítate, by považoval za správne
buď čísla 10
- 20
alebo čísla 30
- 40
😉
Vysielanie správ
Aj keď to tak môže znieť, nebudeme teraz komunikovať s marťanmi, ani si s nikým dopisovať 🙂 Vysielanie správ v Scratchi nám umožní skákať do rôznych menších programov. Tým si môžeme kód sprehľadniť. Spomeňme si na našu kalkulačku v prvých lekciách, ktorá načítala dve čísla a vypočítala všetky štyri operácie.
Teraz si vytvoríme novú kalkulačku, v ktorej si budeme chcieť zvoliť, ktorú operáciu má vykonať.
Kalkulačka s využitím podmienok
Bez vysielania správ by sme napísali kód podobný tomuto:
Po spustení kalkulačky a zadaní hodnôt bude vyzerať výstup takto:
Ako vidíme, kód je pomerne obsiahly. Na začiatku načítame klasicky dve čísla. Potom nám mačičák povie, aké operácie s nimi môžeme vykonávať. Zadáme číslo operácie, ktorú chceme vykonať a program podľa toho určí výsledok. Ošetrili sme aj prípad, že vyberieme neplatný operátor 😉
Program by v tomto prípade fungoval, aj keby sme použili iba bloky keď ... tak. Je ale zbytočné, aby sa program pýtal štýlom:
- Je operátor 1?
- Áno.
- Je operátor 2?
- Nie.
- Je operátor 3?
- Nie.
Kalkulačka s vysielaním správ
Teraz si skúsime napísať ten istý kód pomocou zasielania správ. Použijeme rovnaký kód, ako pri predchádzajúcej verzii programu, len urobíme pár zmien:
Prejdeme do blokov Udalosti a pretiahneme si stranou štyri bloky vyšli správu a čakaj a po obdržaní správy:
Potom si vytvoríme štyri rôzne správy. Budú to správy plus, mínus, krat a deleno. Pri blokoch vyšli správu klikneme na rozbaľovaciu roletku a potom na Nová správa, potom už pokračujeme ako pri tvorbe premenných:
Teraz si dáme na stranu všetky bloky, kde nastavujeme premennú
vysledek
a namiesto nich nalepíme bloky, ktoré vysielajú
správy:
Nakoniec nalepíme na bloky po obdržaní správy bloky nastav
... na s premennou vysledek
, ktoré sme pred chvíľou z
podmienok dali stranou:
Keď teraz program spustíme, bude fungovať úplne rovnako ako pôvodný
kód. Možno si teda hovoríte, že použitie blokov vyšli správu je
celkom zbytočné, pretože sme si do programu iba pridali ďalšie bloky
navyše. A máte pravdu 😅 Čo keby sme ale namiesto jednoduchého
nastavovania premennej vysledek
chceli vykonať ďalších desať
príkazov pri každom bloku? A čo keby tie bloky neboli štyri (plus, mínus,
krát, delené), ale bolo by ich treba desať?
Predstavme si napríklad, že tvoríme program, v ktorom si používateľ vyberie jednu z desiatich farieb. My v ňom následne necháme zmeniť farbu všetkých objektov v našej scéne s mačičákom.
Objekty sa naučíme pridávať a upravovať v ďalších lekciách, ale mali by sme napríklad objekt domček, stôl, stoličky, jablko, okno, dvere...
To už by nebol iba jeden blok kódu, ale rovno treba 15 pre každú farbu. Vynásobme to desiatimi farbami a dostaneme 150 blokov kódu, ktoré by boli v programe niekde pod sebou a my by sme ich museli pri úprave zložito hľadať. V takomto programe by už nebolo použitie správ pomerne zbytočné ako v našej jednoduchej kalkulačke, ale bolo by v podstate nutnosťou, aby sme sa z hľadania blokov nezbláznili 😉
V nasledujúcom kvíze, Kvíz - Načítanie vstupov a podmienky v Scratchi, si vyskúšame nadobudnuté skúsenosti z predchádzajúcich lekcií.
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é 18x (128.36 kB)
Aplikácia je vrátane zdrojových kódov v jazyku Scratch