Počítačové laboratoře bez tajemství aneb naučme se učit algoritmizaci a programování s využitím robotů Lekce 04 Řídící struktury Tento projekt CZ.1.07/1.3.12/04.0006 je spolufinancován Evropským sociálním fondem a státním rozpočtem České republiky.
Vysvětlit funkci jednotlivých řídících struktur Ukázat paralelu mezi jednotlivými strukturami vývojových diagramů a programu Scratch Tvorba jednoduchých typových příkladů CZ.1.07/1.3.12/04.0006 VPSS_L04 (verze 01.1/2012) - Řídící struktury 2
Karta Bloky pro Zahájení a ukončení skriptu Větvení (rozhodovací bloky) Opakování (iterace) Zasílání zpráv (synchronní nebo asynchronní komunikace, paralelní programování) Čekání CZ.1.07/1.3.12/04.0006 VPSS_L04 (verze 01.1/2012) - Řídící struktury 3
Bloky odpovídají značce zahájení činnosti ve VD Start Standardní spuštění skriptu uživatelem kliknutím na praporek nad scénou Reakce na události (událostmi řízené programování, paralelní programování) Myši (kliknutí na sprite) Obdržení zprávy Stisku definované klávesy CZ.1.07/1.3.12/04.0006 VPSS_L04 (verze 01.1/2012) - Řídící struktury 4
Bloky odpovídají značce zahájení činnosti ve VD Start Zastavení aktuálního skriptu (nutno použít při zaslání zprávy a čekání na výsledek) Zastavení všech skriptů, ukončení činnosti programu Konec CZ.1.07/1.3.12/04.0006 VPSS_L04 (verze 01.1/2012) - Řídící struktury 5
Rozhodování na základě splnění (nesplnění podmínky) Podmínka se vkládá na příslušné místo v bloku Podmínka - + Příkaz 1 Neúplné Úplné - + Podmínka Příkaz 2 Příkaz 1 CZ.1.07/1.3.12/04.0006 VPSS_L04 (verze 01.1/2012) - Řídící struktury 6
Některé bloky jsou odlišné od běžných programovacích jazyků, případně zvyklostí strukturovaných vývojových diagramů Nekonečný cyklus (uvnitř cyklu je možné nestrukturované ukončení běhu aktuálního skriptu nebo všech skriptů) Cyklus neumožňuje pokračování po skončení cyklu (připojení další operace za cyklus) CZ.1.07/1.3.12/04.0006 VPSS_L04 (verze 01.1/2012) - Řídící struktury 7
Cyklus se známým počtem opakování Variace na cyklus FOR Není přístup k řídící proměnné cyklu (např. pro zjištění, kolikátá iterace probíhá) Lze řešit vlastní dodatečnou proměnnou (počítadlem, potom tento přístup ztrácí smysl, viz dále, lze nahradit cyklem s podmínkou) CZ.1.07/1.3.12/04.0006 VPSS_L04 (verze 01.1/2012) - Řídící struktury 8
Klasická obdoba cyklu s podmínkou na začátku ( WHILE ) Cyklus neumožňuje pokračování po skončení cyklu (připojení další operace za cyklus) Kontrola podmínky pokud platí, vykonají se příkazy v těle cyklu a opětovně se kontroluje podmínka pokud neplatí, cyklus se ukončí 2x průchod cyklem Tělo cyklu se nevykoná ani jednou CZ.1.07/1.3.12/04.0006 VPSS_L04 (verze 01.1/2012) - Řídící struktury 9
Jediný plnohodnotný cyklus Cyklus WHILE s opačnou podmínkou na začátku Kontrola podmínky pokud neplatí, vykonají se příkazy v těle cyklu a opětovně se kontroluje podmínka pokud platí, cyklus se ukončí! Neexistuje cyklus s podmínkou na konci Jinak zapsané totožné podmínky 2x průchod cyklem CZ.1.07/1.3.12/04.0006 VPSS_L04 (verze 01.1/2012) - Řídící struktury 10
Synchronní komunikace, blokuje paralelní běh Nutné korektní ukončení volaného scénáře ZPRÁVA ODPOVĚĎ CZ.1.07/1.3.12/04.0006 VPSS_L04 (verze 01.1/2012) - Řídící struktury 11
Asynchronní komunikace, vytváří paralelní běh Nutní nutnost ukončení volaného scénáře ZPRÁVA CZ.1.07/1.3.12/04.0006 VPSS_L04 (verze 01.1/2012) - Řídící struktury 12
Časování příběhů Jedna z možností synchronizace několika skriptů Čekací smyčka s podmínkou Podmínka + - CZ.1.07/1.3.12/04.0006 VPSS_L04 (verze 01.1/2012) - Řídící struktury 13
Animovaný příběh (posloupnost) Výpočty bez větvení Minimum ze zadaných čísel Faktoriál (různé přístupy k problému) Kombinační číslo Kvadratická rovnice Největší společný dělitel CZ.1.07/1.3.12/04.0006 VPSS_L04 (verze 01.1/2012) - Řídící struktury 14
CZ.1.07/1.3.12/04.0006 VPSS_L04 (verze 01.1/2012) - Řídící struktury 15
CZ.1.07/1.3.12/04.0006 VPSS_L04 (verze 01.1/2012) - Řídící struktury 16
CZ.1.07/1.3.12/04.0006 VPSS_L04 (verze 01.1/2012) - Řídící struktury 17
CZ.1.07/1.3.12/04.0006 VPSS_L04 (verze 01.1/2012) - Řídící struktury 18
CZ.1.07/1.3.12/04.0006 VPSS_L04 (verze 01.1/2012) - Řídící struktury 19
CZ.1.07/1.3.12/04.0006 VPSS_L04 (verze 01.1/2012) - Řídící struktury 20
CZ.1.07/1.3.12/04.0006 VPSS_L04 (verze 01.1/2012) - Řídící struktury 21
CZ.1.07/1.3.12/04.0006 VPSS_L04 (verze 01.1/2012) - Řídící struktury 22
Úprava kostýmu pozadí viz příští lekce CZ.1.07/1.3.12/04.0006 VPSS_L04 (verze 01.1/2012) - Řídící struktury 23
Tento příklad demonstruje náhradu neexistující možnosti vytvoření funkce (metody) formou zasílání zpráv (synchronní komunikace) s využitím sdílení proměnných CZ.1.07/1.3.12/04.0006 VPSS_L04 (verze 01.1/2012) - Řídící struktury 24