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

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:

Blok a zároveň - Scratch

Alebo

Na splnenie podmienky alebo stačí, aby bola splnená podmienka aspoň na jednej strane:

Blok alebo - Scratch

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:

Kód programu na zadanie čísla v rozsahu - Scratch

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:

Mačičák považuje za správne iba čísla 10–20 - Scratch

Operátory sa pomocou vlepovania do seba dajú samozrejme kombinovať:

Kód programu na zadanie čísla v dvoch rozmedziach - Scratch

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:

Kód programu kalkulačky s operátormi pomocou čísel - Scratch

Po spustení kalkulačky a zadaní hodnôt bude vyzerať výstup takto:

Program kalkulačka s možnosťou voľby operátora - Scratch

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.
Teraz už je jasné, že operátor je jedna. Bez bloku inak by ale program pokračoval:
  • Je operátor 2?
  • Nie.
  • Je operátor 3?
  • Nie.
A tak ďalej, čo je samozrejme nezmysel 🙂

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:

štyri bloky vysielania a prijímania správ - Scratch

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:

tvorba novej správy roletka - Scratch

Teraz si dáme na stranu všetky bloky, kde nastavujeme premennú vysledek a namiesto nich nalepíme bloky, ktoré vysielajú správy:

zámena blokov nastav vysledok na vyšli spravu - Scratch

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:

tvorba blokov po obdržaní spravy - Scratch

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

 

Predchádzajúci článok
Podmienky (vetvenie) v Scratchi
Všetky články v sekcii
Scratch
Preskočiť článok
(neodporúčame)
Kvíz - Načítanie vstupov a podmienky v Scratchi
Článok pre vás napísal PDoctor
Avatar
Užívateľské hodnotenie:
Ešte nikto nehodnotil, buď prvý!
Aktivity