Metodika výučby programovania - stavebnice RoboLab |
---|
Prírodovedecká fakulta UPJŠ, Ústav informatiky |
mapa diplomového webu |
komunikácia jednoduchá | komunikácia vetvená | komunikácia opakovaná | komunikácia a udalosti | komunikácia s kontajneromi |
Myslím si, že každému z vás sa už niekdy stalo, že pri odchode z domu zabudol zhasnúť svetlo na chodbe. Keď ste sa neskôr vrátili domov, tak ste boli na seba nahnevaný, že ste na to zabudli.
Najradšej by ste boli, ak by pri odchode z domu stačilo povedať: "odchádzam" a všetky spotrebiče, na ktoré ste nechali zapnuté, sa samé vypnú. A naopak, po príchode domov by sa na príkaz: "prichádzam" opäť všetky rozsvietili.
Jednoduchým spôsobom sa dá podobná situácia nasimulovať v prostredí stavebnice Robolab. Prestavte si, že jedna kocka predstavuje vás a druhá všetky spotrebiče v domácnosti (napríklad svetko na chodbe a v izbách, prípadne televízor).
V predchádzajúcej téme sa už naučili, ako používať jednoduchú komunikáciu. Preto nebude pre nás ťažké napísať program, v ktorom prvá kocka (my) pošle správu druhej kocke (všetky spotrebiče), a tá zapne svetlo. My však musíme povedať zázračné slovo "prichádzam". To bude interpretované stlačením dotykového senzora na prvej kocke.
Program pre nás a spotrebiče by potom mohol vyzerať takto:
Ale ako sa presvedčím, či sa tak naozaj stalo? Ak napríklad nevidím do detskej izby. Preto by bolo dobré, aby nám bolo oznámené, že príkaz bol vykonaný. Podobne ako vo všetkých filmoch, kde kapitán vydá rozkaz a vojak po vykonaní príkazu o tom kapitána informuje.
Takémuto typu komunikácie hovoríme komunikácia s
potvrdením. Jej realizácia je celkom jednoduchá. V programe pre spotrebiče,
pridáme spätné poslanie správy prvej kocke. To by však nestačilo. Prvá kocka musí ešte túto správu prijať a odnámiť to zvukovým znamením. Príkazy na to už poznáme, takže to pre nás nebude ťažké. Celkové výsledné programy pre nás a spotrebiče budú teda vyzerať takto:
Ak ste si všimli, tak nejde o nič zložité. V podstate sa spoja dve jednoduché komunikácie. Pozor ale treba dávať na inicializovanie schránky na správu, tá musí byť tesne pred čakaním na správu, lebo inak by program neprebehol.