Algoritmus a vazba na program
Je důležité si uvědomit, že dosud počítače nejsou schopné zcela samostatného myšlení. Pro provádění výpočtů a obecně zpracování dat je třeba vytvořit jasné postupy - algoritmy zpracování.
1. Algoritmus a vazba na program
1.8. Větvení
Rozhodovací
blok
Rozhodovací blok (anglicky „Decision“) obecně popisuje rozhodnutí na základě podmínky vepsané uvnitř tohoto bloku – viz Obrázek 1.

Obrázek 1: Značka rozhodování
Podmíněný příkaz vyhodnocuje logický výraz a podle výsledku vykoná jednu z větví označených True, nebo False. Výstup uvozený slovem True z bloku představuje větev, která bude vykonána, pokud je podmínka uvnitř rozhodovacího bloku splněna.
Pozn.: Ve vývojových diagramech lze také nalézt označení větve True např. operátorem +, nebo slovem Ano.
Při nesplnění podmínky bude vykonána větev uvozená slovem False.
Pozn.: Ve vývojových diagramech lze také nalézt označení větve False např. operátorem -, nebo slovem Ne.
Algoritmus PrirozeneCislo- Popis: Test na přirozené číslo
- Zadání: Rozhodněte, zda uživatelem zadané číslo je přirozené číslo. Pokud je číslo přirozené, vypište uživateli zadanou hodnotu. V opačném případě se nestane nic
Následující tabulka obsahuje relační operátory, které lze využít ve vývojových diagramech – viz Tabulka 1.
Operátor | Operace | Příklad | Možná další označení – nebudeme používat |
> | Větší než | x > y |
|
>= | Větší rovno | x >= y |
|
< | Menší než | x < y |
|
<= | Menší rovno | x <= y |
|
== | Rovno | x == y | = |
!= | Nerovno | x != y | # |
Tabulka 1: Relační operátory
Následující tabulka obsahuje logické operátory, které lze využít ve vývojových diagramech – viz Tabulka 2.
Operátor | Operace | Příklad | Možná další označení |
&& | Logický součin – konjunkce (klávesová zkratka na české klávesnici: Alt+38 … nebo … AltGr+C) | x < y && y < z | AND
|
|| | Logický součet – disjunkce (klávesová zkratka na české klávesnici: Alt+124 … nebo … AltGr+w) | x < y || y < z | OR |
! | Negace | ! (x > y) | NOT |
Tabulka 2: Logické operátory
Pojďme si trochu procvičit logiku – viz Tabulka 3. Následující tabulka obsahuje možné hodnoty, kterých může nabývat logická proměnná – true (někdy také označená jako 1, nebo +) vs false (někdy také označená jako 0, nebo -). V programování se tyto proměnné označují jako typ Boolean nebo též logický typ. Ve sloupcích jsou umístěny logické a relační operátory, jejichž aplikací na hodnoty těchto proměnných získáme výsledek. Pro zjednodušení si představte namísto false hodnotu 0 a namísto true hodnotu 1. Pak již stačí násobit (logický součin – konjunkce) nebo hodnoty sčítat (logický součet – disjunkce – pozor 1 + 1 je v tomto případě 1. Hodnota totiž může být 0 nebo 1). V C# se za true považuje každý výraz různý od nuly, false je ve všech bitech výrazu nula.
x | y | x && y | x || y | ! (x) | x == y | x <= y |
false | false | false | false | true | true | true |
false | true | false | true | true | false | true |
true | false | false | true | false | false | false |
true | true | true | true | false | true | true |
Tabulka 3: Logické a relační operátory
Vícenásobné větvení
Mnohdy potřebujeme v algoritmu zaznamenat případ vícenásobného větvení, tzn., z rozhodovacího bloku vystupují více než dvě větve. Jedná se o tzv. přepínač (anglicky „Case“, nebo někdy také „Switch“), kde je nejprve vyhodnocen výraz a na základě jeho výstupu se rozhodujeme, kterou větví se v algoritmu následně vydáme. Pokud ani jedna větev neodpovídá výstupu známky, algoritmus pokračuje ve větvi Default – viz Obrázek 2. V jazyce C# je synonymem této značky příkaz switch (dozvíme se dále). Tuto značku však aplikace Flowgorithm neobsahuje, ale můžeme ji nahradit vnořením dalších bloků s rozhodováním.

Obrázek 2: Vícenásobné větvení
Pokud bychom se nad tímto prvkem zamysleli, lze ho detailněji popsat pomocí následujícího vývojového diagramu, kde je výsledek výrazu sekvenčně porovnán v každém rozhodovacím bloku, tj. Konstanta_.... Pokud hodnota výrazu odpovídá hodnotě v rozhodovacím bloku, je následně provedena příslušná větev. Pokud hodnota výrazu danou podmínku nesplňuje, přechází do další podmínky atd. Pokud ani jedna z podmínek není splněna, pak se v tomto případě provede výchozí (default) větev, mnohdy prázdná - viz Obrázek 3.

Obrázek 3: Vícenásobné větvení - princip vnořených podmínek
Algoritmus Kalkulacka- Popis: Vývojový diagram pro řešení aritmetických operací u dvou zadaných celých čísel
- Zadání: Zkuste navrhnout algoritmus Kalkulacka, který řeší základní aritmetické operace podle zadaného číselného kódu (1 … sčítání, 2 … odečítání, 3 … násobení a 4 … dělení) u dvou uživatelem zadaných čísel a a b
Je důležité zdůraznit, že algoritmus Kalkulacka nezohledňuje možné chyby, které mohou nastat (např. pouhé konstatování "Zadali jste špatný číselný kód" aritmetické operace a nemožnost provést aritmetickou operaci asi nikoho nepotěší). Tímto a dalšími problémy se budeme zabývat v dalších kapitolách tohoto kurzu.