← sexta VI.A

Najdi chybu ve vývojovém diagramu

Deset diagramů algoritmů pro micro:bit. Všechny jsou nakreslené správně, ale algoritmus v nich nedělá to, co má. V každém je schovaná logická chyba. Najdi ji, vysvětli, proč se projeví, a oprav ji.

Postup u každého diagramu
  1. Přečti zadání a zjisti, co má algoritmus dělat.
  2. Vyzkoušej ho s hodnotami z řádku Vyzkoušej. Prstem nebo do tabulky: kudy půjdeš, jaké hodnoty mají proměnné.
  3. Najdi místo, kde se výsledek rozchází se zadáním.
  4. Napiš, v čem je chyba a jak ji opravíš. Nápovědu otevři až po pokusu.
Značky v diagramu
začátek a konec příkaz vstup a výstup rozhodnutí (Ano a Ne)← přiřazení hodnoty

 

Odpovědi se ukládají jen v tomto prohlížeči. Přejít na: 1 2 3 4 5 6 7 8 9 10

1

Teplo nebo zima

★☆☆

Micro:bit změří teplotu. Když je aspoň 25 °C, má zobrazit ‚Teplo‘, jinak ‚Zima‘. Po vyzkoušení ukazuje opak.

AnoNeStartteplota ← změř teplotuteplota ≥ 25 °C ?Zobraz ‚Zima‘Zobraz ‚Teplo‘Konec

Vyzkoušej: Zkus teplotu 30 °C a 10 °C.

Nápověda

Projdi diagram s teplotou 30 °C a sleduj, kam se dostaneš.

2

Sudé nebo liché

★☆☆

Algoritmus načte číslo n a zobrazí ‚sudé‘ nebo ‚liché‘. Pro některá čísla se ale nezobrazí nic.

AnoStartNačti číslo nzbytek n : 2 = 0 ?Zobraz ‚sudé‘Konec

Vyzkoušej: Zkus n = 8 a n = 7.

Nápověda

Kolik výstupů má rozhodovací kosočtverec? A jak se dostane lichá hodnota dál?

3

Součet 1 až 10

★☆☆

Algoritmus má sečíst čísla 1 až 10 a zobrazit 55. Spuštěný program ale nikdy neskončí.

AnoNeStartsoučet ← 0i ← 1i ≤ 10 ?součet ← součet + iZobraz součetKonec

Vyzkoušej: Trasuj do tabulky hodnoty i a součet pro prvních pět průchodů.

Nápověda

Co se stane s hodnotou i po každém průchodu cyklem?

4

Čísla 1 až 5

★★☆

Algoritmus má zobrazit čísla 1, 2, 3, 4, 5. Zobrazí jen čtyři.

AnoNeStarti ← 1i < 5 ?Zobraz ii ← i + 1Konec

Vyzkoušej: Trasuj do tabulky i a výstup, dokud cyklus neskončí.

Nápověda

Jaká hodnota i je poslední, při které podmínka ještě platí?

5

Zámek s PINem

★★☆

Zámek se má otevřít, jen když je PIN správný. Teď se otevře i při špatném PINu.

AnoNeStartNačti PINOtevři zámekPIN = 1234 ?Zobraz ✔Zobraz ‚Špatný PIN‘Konec

Vyzkoušej: Trasuj s PINem 1234 a s PINem 9999.

Nápověda

Kdy přesně se provede krok Otevři zámek? Záleží na tom, co zadal uživatel?

6

Zima, teplo, horko

★★☆

Micro:bit zobrazí ‚Horko‘ nad 30 °C, ‚Teplo‘ nad 20 °C a jinak ‚Zima‘. Při 35 °C ale ukazuje ‚Teplo‘ a ‚Horko‘ se nezobrazí nikdy.

AnoNeAnoNeStartt ← změř teplotut > 20 ?t > 30 ?Zobraz ‚Teplo‘Zobraz ‚Horko‘Zobraz ‚Zima‘Konec

Vyzkoušej: Trasuj teploty 35 °C, 25 °C a 10 °C.

Nápověda

Zkus teplotu 35 °C. Která podmínka se vyhodnotí jako první a kam to vede?

7

Alarm mimo rozsah

★★☆

Micro:bit má spustit ALARM, když je teplota mimo rozsah 10 až 28 °C. Alarm se ale nespustí nikdy.

AnoNeStartt ← změř teplotut < 10 A ZÁROVEŇt > 28 ?Zobraz ‚ALARM‘Zobraz ‚OK‘Konec

Vyzkoušej: Zkus t = 5, t = 20 a t = 35.

Nápověda

Zkus najít číslo, pro které platí obě části podmínky najednou.

8

Průměr čtyř měření

★★★

Micro:bit čtyřikrát změří teplotu a zobrazí průměr. Průměr ale vychází vždy jen jako čtvrtina posledního měření.

AnoNeStarti ← 1i ≤ 4 ?t ← změř teplotusoučet ← 0součet ← součet + ti ← i + 1průměr ← součet / 4Zobraz průměrKonec

Vyzkoušej: Měření 20, 22, 24, 26. Správný průměr je 23. Co vyjde v diagramu?

Nápověda

Trasuj hodnotu součtu po každém průchodu. Co s ní dělá druhý krok cyklu?

9

Největší hodnota

★★★

Seznam má 5 naměřených hodnot. Algoritmus má zobrazit největší. Pro seznam 12, 7, 25, 3, 18 má vyjít 25.

AnoAnoNeNeStartmax ← seznam[1]i ← 2i ≤ 5 ?seznam[i] < max ?max ← seznam[i]i ← i + 1Zobraz maxKonec

Vyzkoušej: Trasuj s tímto seznamem. Co se zobrazí?

Nápověda

Proč se zobrazí 3? Co by se muselo změnit, aby se zobrazila 25?

10

Hlídač s podprogramem

★★★

Hlavní program stále měří teplotu. Když je nad 28 °C, zavolá podprogram Alarm. Po prvním alarmu ale program už neměří a alarm pípá pořád dokola.

AnoNeHLAVNÍ PROGRAMPODPROGRAM ALARMStartt ← změř teplotut > 28 ?AlarmPočkej 1 sAlarmZobraz ‚!‘PípniAlarm

Vyzkoušej: Trasuj podprogram Alarm do konce. Kam se dostaneš po jeho posledním kroku?

Nápověda

Co by měl udělat podprogram, až dokončí svou práci? A co dělá volání sebe sama?

Tento text vlož do Učebny nebo do sdíleného dokumentu.