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
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í)
Start
◦ 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
CZ.1.07/1.3.12/04.0006
Konec
VPSS_L04 (verze 01.1/2012) - Řídící struktury
5
Rozhodování na základě splnění (nesplnění podmínky)
Podmínka
◦ Podmínka se vkládá na příslušné místo v bloku
Neúplné
Úplné
-
Příkaz 2
CZ.1.07/1.3.12/04.0006
Podmínka
+ Příkaz 1
+ Příkaz 1
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
CZ.1.07/1.3.12/04.0006
Tělo cyklu se nevykoná ani jednou
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