Micro:bit lekce 4. Cykly (iterační příkazy) - Opakují dokola několikrát kus programu, potom program pokračuje dál. - Buď předem určeným počtem kolikrát, nebo do splnění nějaké podmínky. - Bloky cyklů najdeme v sekci LOOPS. Cyklus s určeným počtem opakování cyklus Repeat - Na obrázku: Několikrát (pocetopakovani krát) blikne ikonka srdce. - Předem daný počet opakování může být zadán tedy také aktuální hodnotou proměnné pocetopakovani, nebo natvrdo přímo číslem = literálem Cyklus s počtem opakování daným řídicí proměnnou cyklus For from to - Na obrázku: Bude vypisovat čísla od 0 do pocetopakovani = zopakuje pocetopakovani+1 krát. - Automaticky se vytvoří řídící proměnná index lze použít i svoji. - Řídící proměnnou lze použít pro něco při vykonávání opakujících se příkazů viz příklad. - Řídicí proměnná začíná vždy od 0 jak začít od jiného čísla? - Zvětšování řídící proměnné je automatické vždy o +1. - Nebezpečí řízení řídicí proměnné
Cyklus s podmínkou na začátku While do - Dokud je splněna podmínka, opakuje příkazy. Když podmínka splněna není, příkazy už nezopakuje a jde dál. - Na obrázku: Bude vypisovat sudá čísla od 0 do maximum = zopakuje maximum/2+1 krát. - Nemusí se provést ani jednou. - Zvětšování řídící proměnné musí obstarat programátor nemusí to být o +1. - Nebezpečí nekonečného cyklu!
Příklad 1 (repeat): Microbit udělá 5 tepů srdce, pak zhasne = 5x se zopakuje: ikona srdce, počkej 500ms, zhasni diody, počkej 200ms. Příklad 2 (while nebo for): Odpočet od 9 do 0 celé zopakuj jen 1x, pak zhasni. Zkus odpočítávat také pomocí cyklu FOR! Příklad 3 (while): Počítej a vypisuj čísla od 0 do nekonečna dokud uživatel nestiskne tlačítko A (použij Button A is pressed ze sekce INPUT, event. not ze sekce LOGIC). Na displeji nakonec zůstane zobrazené poslední číslo. Příklad 3B: Předchozí stopky přeprogramuj tak, aby se tlačítkem počítání pouze přerušilo a po opětovném stisku vždy zase pokračovalo. Tlačítkem B se nastaví počítání od začátku. Příklad 4 (for): Svítící dioda se bude posouvat z levého horního rohu postupně vždy o jednu doprava, dokud nedojde do pravého horního rohu. Tedy SLOUPEC se bude postupně měnit od 0 do 4 (řádek zůstává stejný). Při každém průchodu (při každé iteraci) se: 1. Zobrazí dioda 2. Počká 3. Zhasne dioda 4. Změní sloupec o jedničku (pokud to neudělá cyklus automaticky) Program se bude opakovat dokolečka. Příklad 5 (for, for): Svítící dioda proběhne celý displej. Na zhasnutém displeji se rozsvítí jen levá horní dioda (0,0), která se bude postupně přesunovat ve směru, jako když se čte (v češtině ). Na každé pozici zůstane svítit 0,5 sekundy. Po dosvícení v pravém dolním rohu (4,4) se bude celý program opakovat. Příklad 5B: Jako příklad 4 s tím, že ve čtyřech konstantách (HORNI_ZARAZKA, LEVA_ZARAZKA, DOLNI_ZARAZKA, PRAVA_ZARAZKA) lze vymezit oblast na displeji, kde se bude dioda pohybovat (např. jen 3x3 diody uprostřed). Příklad 6: Dokud je stisknuto tlačítko A, zobrazuj ikonu smajlíka, dokud je stisknuto tlačítko B, zobrazuj mračíka. Není-li stisknuto žádné tlačítko, nezobrazuj nic. Příklad 7: Běž do domečku = diodový displej micro:bitu (5 x 5 červených diod) nechť funguje jako hřiště. Na začátku programu (a také kdykoliv stiskneš levé A tlačítko) tě mikrobit vysadí na náhodné souřadnice hřiště. Vymysli program, který tě automaticky dovede nejkratší cestou (může i šikmo) do domečku = pravý dolní roh. Každý krok nechť je vidět na displeji po dobu 0,5 sekundy.
Řešení Příklad 1 Příklad 2 Příklad 3
Příklad 3B Příklad 4 Příklad 5 Příklad 5B
Příklad 6 Příklad 7