V minulé lekci A4 jsme si ukázali, jak provádět matematické operace. Protože jsme použili blok pro opakování typu “for”, v této lekci si tento blok vysvětlíme podrobně a ukážeme si stejném příkladu, jak snadno napsat program.
Podívejme se na tento blok vpravo a jeho funkci. Jak už jsme poznali v minulé lekci, provádí tento blok opakovaně činnosti – bloky, které jsou uzavřeny v jeho kleštích. Kolikrát má opakování vykonat si můžeme zadat. Proto je tento blok “for” nazýván “cyklus s pevným počtem opakování”.
Za slovem „for” (překlad -> pro) je pole, ve kterém se nachází jméno proměnné. Je to celočíselná numerická proměnná, standardně nastavená na jméno „index”. Už od pradávných dob programování se pro všeobecné celočíselné numerické proměnné používali písmena abecedy od písmene „i”. ( od slova index). Takže pokud jsme v programu potřebovali tři celočíselné numerické proměnné pro všeobecné použití (indexaci), nazvali jsme je „i”, „j”, a „k”.
Jestliže použijeme blok „for” a ponecháme jméno proměnné „index” tak se nám tato proměnná objeví i v nabídce Variables. Proměnné se říká „řídící proměnná cyklu”. Můžeme si zvolit jiné jméno, pokud k tomu máme nějaký důvod. Protože jsme v minulé lekci pracovali s proměnnou „pocitadlo” a tento význam bude platit i pro program této lekce, přejmenujeme si proměnnou z „index” na “pocitadlo”. Hned si to zkusíme.
V editoru z nabídky Loops klikneme na blok „for” a přetáhneme na plochu programu do kleští bloku „on start“. Nyní v menu klikneme na nabídku Variables, kde se nám vytvořila proměnná (oválný blok) se jménem „index“. Levým tlačítkem myši klikneme na blok této proměnné a přejmenujeme ji na jméno „pocitadlo“. Můžete si všimnout, že už i blok „for“ v kleštích „on start“ má už jméno řídící proměnné cyklu „pocitadlo“.
Než začne blok “for” opakovat blok nebo bloky ve svých kleštích, nastaví si počáteční hodnotu své řídící proměnné cyklu, v našem případě “pocitadlo” na hodnotu nula. V opakovaných blocích můžeme hodnotu z řídící proměnné cyklu číst, nesmíme však měnit její hodnotu. Takže ji můžeme použít pro výpis na displej. Při prvním průchodu (poprvé provádí bloky v kleštích) má naše proměnná „pocitadlo” hodnotu nula. Dáme si do kleští bloku „for” výpis obsahu proměnné „počitadlo”, to už jsme programovali v minulé lekci. Bude to vypadat následovně jak zobrazeno na obrázku vlevo.
Pokud máme potíže s vložením bloku „show number”, podíváme se minulé lekce, Proměnnou “pocitadlo” najdeme v nabídce Variables. Pokud bychom to ponechali takto, asi bychom toho moc neviděli protože mikropočítač je rychlý. To platí, pokud budete program nahrávat do destičky Micro:bitu.
Tak si za blok „show number” dáme blok „pause 1000″ a budeme klidně číst hodnoty z displeje. – viz obrázek vpravo. Když mikropočítač dokončí první průchod (provede poslední blok v kleštích), tak do řídící proměnné cyklu přičte jedničku, v našem případě do „pocitadlo”. A teď pozor, jestliže je hodnota řídící proměnné větší než hodnota udaná za slůvkem „to”, v našem případě 9, pak opakování se ukončí a provádí se další blok za blokem „for”. Když ale je hodnota v řídící proměnné menší nebo rovna hodnotě za „to”, začíná další kolo a provádí se první blok v kleštích. V našem případě by se počet opakování rovnal deseti (pro hodnoty řídící proměnné cyklu 0, 1, 2, 3 a 4).
Protože máme v zadání počítat do deseti, tak řídící proměnná cyklu bude nabývat hodnot 0 až 9, celkem 10 různých hodnot. Naše číslo v bloku „for” je tedy 9.
Všimněme si, jak se nám program zjednodušil. Blok „for” za nás nastavil počáteční hodnotu počitadla na nulu, také nemusíme vkládat blok pro výpočet nové hodnoty proměnné „pocitadlo”, udělá to za nás blok – cyklus „for”. Celý program se provede jen jednou a tím končí. Pokud bychom chtěli, aby se program opakoval stále dokola a my nemuseli na Micro:bit stále mačkat tlačítko RESET, vložíme celý program do kleští bloku „forever”.
Použití bloku „for” si ukážeme ještě na jiném příkladu. Budeme postupně rozsvěcovat a zhasínat Led diody na displeji a to v hlavní úhlopříčce, tedy na adresách (0,0) až (5,5).
Bloky „plot“ a „unplot“ viz lekce A3.
Program už nemusím vysvětlovat, vyzkoušejte si ho sami vypadá takto :
Úkoly této lekce :
- zkuste rozsvěcovat LED diody jen v nultém řádku.
- zkuste rozsvěcovat diody jen v prostředním (druhém) sloupci.
- pro chytré : zkuste nejprve LED diody rozsvítit v hlavní úhlopříčce a pak je následně nechat zhasínat. (nápověda: potřebujeme dva bloky „for”, jeden pro rozsvěcování bez zhasínání, druhý blok je bude zhasínat)
Rady :
Programování je tvůrčí činnost. Naučit se to můžete jen tehdy, když nebudete jen přetahovat bloky dle návodu, ale budete přemýšlet proč to tak je. Pokud něco nefunguje tak, jak jste si mysleli že to bude fungovat, hodně o tom přemýšlejte. Obvykle je chyba na straně programátora nebo v jeho neznalosti fungování příkazu – bloku. Pěknou zábavu!