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. 

Značka rozhodování

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


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
(Výsledek je Pravda, pokud platí x < y  a zároveň y  < z, jinak je výsledek Nepravda)

AND

 

||

Logický součet – disjunkce (klávesová zkratka na české klávesnici: Alt+124 … nebo … AltGr+w)

x < y || y < z 
(Výsledek je Pravda, pokud platí x < y, nebo y < z, jinak je výsledek Nepravda)

OR

!

Negace

! (x > y) 
(Výsledek je Pravda, pokud neplatí, že x > y, jinak je výsledek Nepravda)

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.

Vícenásobné větvení

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.

Vícenásobné větvení - princip vnořených podmínek

Obrázek 3: Vícenásobné větvení - princip vnořených podmínek


Algoritmus Kalkulacka


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.