VĚTVENÍ ALGORITMŮ
25. listopad 2012 VY_32_INOVACE_160305_Vetveni_algoritmu_DUM
Autorem materiálu a všech jeho částí, není-li uvedeno jinak, je Mgr. Pavlína Mihačová.Obchodní akademie a Střední odborná škola logistická, Opava, příspěvková organizace.
Materiál byl vytvořen v rámci projektu OP VK 1.5 – EU peníze středním školám,registrační číslo CZ.1.07/1.5.00/34.0809.
VĚTVENÍJedním z nejčastějších a nejdůležitějších důvodů, proč se používá v algoritmu větvení, je ošetření nežádoucích důsledků, např. ve výrazu nedělíme nulou, výraz pod odmocninou je nezáporný, apod.
Algoritmus se větví na několik částí. Která z těchto částí se vykoná, závisí často na podmínce. Pokud je tedy podmínka splněna, provede se něco jiného, než když podmínka splněna není.
VĚTVENÍ - TYPYExistují tři typy větvení:
•úplné větvení (úplná podmínka)
•neúplné větvení
•vnořené větvení (vnořené podmínky)
ÚPLNÉ VĚTVENÍAlgoritmus se větví do dvou částí: pokud je podmínka splněna, provede se jedna část větve, pokud ne, provede se druhá část.
Příklad 1:Pokud je součet zadaných čísel vyšší nebo roven nule, vytiskni, že je výsledek kladný, pokud je ale výsledek menší než nula, vytiskni, že je výsledek záporný.
ÚPLNÉ VĚTVENÍ – PŘÍKLAD Z
K
čti A, B,C
soucet = A+B+C
soucet >= 0
tisk „Výsledek je kladný“
tisk „Výsledek je záporný“
+ -ŘEŠENÍ
Obrázek 1
ÚPLNÉ VĚTVENÍ – PŘÍKLAD
Příklad:
Jsou zadaná čísla A a B. Jestliže číslo B je rovno nule, vytiskni, že se jedná o dělení nulou, pokud je ale B různé od nuly, vytiskni podíl těchto čísel.
ÚPLNÉ VĚTVENÍ – PŘÍKLAD
C = A / B
Z
K
čti A, B
B = 0
tisk C
tisk „Dělení nulou“
+
-ŘEŠENÍ
Obrázek 1
NEÚPLNÉ VĚTVENÍRozdíl oproti úplné podmínce je v tom, že na jedné z větví algoritmu nemusí být žádný příkaz. To znamená, že se nemusí provést žádný příkaz a algoritmus bude pokračovat příkazy za podmínkou.
Příklad:
Určete absolutní hodnotu z čísla A.
NEÚPLNÉ VĚTVENÍ – PŘÍKLAD
Obrázek 1
A = - A
Z
K
čti A
A < 0
tisk A
+-
ŘEŠENÍ
VNOŘENÉ VĚTVENÍVětev pro splněnou nebo nesplněnou podmínku je doplněna o další podmínky.
Příklad: Pokud je zadané číslo větší než nula, vytiskni, že je číslo kladné, pokud je ale číslo menší než nula, vytiskni, že je číslo záporné, a v případě, že je číslo rovno nule, vytiskni, že číslo je nula.
VNOŘENÉ VĚTVENÍ - PŘÍKLADZ
K
čti A
A > 0
tisk „Číslo je kladné.“
tisk „Číslo je záporné.“
+
-
A < 0
tisk „Číslo je nula.“
-
+
ŘEŠENÍ
Obrázek 1
RELAČNÍ OPERÁTORYV předchozím jsme si ukázali, jak se pracuje s podmínkou. Již víme, že větev označená + se prochází v případě splnění podmínky. Větev označená − se naopak prochází v případě nesplnění podmínky.
Nyní si předvedeme, jak k zápisu využít relační operátory. Používání relačních operátorů není nezbytně nutné, ale vede k rychlejšímu a často i přesnějšímu zápisu.
RELAČNÍ OPERÁTORY
Funkce operátoru Značka
Rovno Je X rovno Y?
===
(ekvivalent. zápis)
Nerovno Je X různé od Y? nebo Není X rovno Y?
<>!=
(ekvivalent. zápis)
Větší než Je X větší než Y?
>
Menší než Je X menší než Y?
<
Větší nebo rovnoJe X větší nebo rovno Y?
>=
Menší nebo rovno Je X menší nebo rovno Y?
<=
Relační operátory jsou operátory, které známe z matematiky. Jejich funkcí je zjistit (porovnat) vztah mezi dvěma operandy.
RELAČNÍ OPERÁTORY - PŘÍKLAD
Použití relačních operátorů si ukážeme na jednoduchém příkladu výpočtu dojezdu automobilu.
Příklad:
Vytvořte algoritmus, kdy známe vzdálenost, kterou chceme urazit, a dále známe aktuální obsah nádrže a spotřebu. Chceme spočítat a vytisknout, jestli vzdálenost máme šanci urazit, nebo ne.
UPOZORNĚNÍ - spotřeba se uvádí v litrech na 100 ujetých kilometrů, proto bude ve vzorci násobení hodnotou 100.
RELAČNÍ OPERÁTORY - PŘÍKLAD
Z
K
čti vzdalenost, litry, spotreba
dojezd = litry / spotreba * 100
dojezd >= vzdalenost tisk
„Dojedeme.“tisk
„Nedojedeme“
+ -ŘEŠENÍ
PŘÍKLADYNyní se pokuste vyřešit následující příklady v tomto souboru: Příklady
CITACE ZDROJŮZDROJE OBRÁZKŮ:•Obrázek 1Arrows & Pointers - arrow bold right - Public Domain Clip Art. PDClipart.org - Public Domain Clip Art [online]. [cit. 2012-11-25]. Dostupné z: http://www.pdclipart.org/displayimage.php?album=27&pos=117
SOFTWARE:•Pro vytvoření vývojových diagramů byl použit Microsoft PowerPoint 2010