Logo kurzu - Algoritmizace a programováníAlgoritmizace a programování

Vývojový diagram maxima ze dvou čísel


Vlevo je vývojový diagram, který řeší problém nalezení většího ze dvou zadaných čísel. Zřetelně je na něm vidět postup: nejprve jsou zadána dvě čísla (například z klávesnice, načtena ze souboru apod.). Poté jsou porovnána a větší z nich je vloženo do proměnné MAX. Nakonec je tato proměnná vypsána (například na obrazovku počítače).

Animace ukazuje průběh v případě, že A je větší než B (např. A = 10 a B = 2).

Je vhodné si zde připomenout vlastnosti algoritmu, tedy postupu, který je:

  • hromadný – tento postup nalezne maximum pro libovolná dvě čísla,
  • jednoznačný – v každém kroku je jednoznačné, co bude následovat (podmínku „A>B“ považujeme rovněž za jednoznačnou – je-li větší A, bude následovat pravá část, jinak levá),
  • opakovatelný – uvedený postup je možné uskutečnit vícekrát,
  • konečný – zde je zcela zřetelné, že každá trasa vede od počátku k cíli (K je vždy dosaženo; někdy se však může stát, že se určitá část postupu „donekonečna“ opakuje),
  • správný - obecně velmi obtížně dokazatelná vlastnost algoritmu. Již zde by mohl být problém například v případě, že jsou obě čísla stejná. (Závisí na konkrétním zadání, zda algoritmus nemá vrátit nějakou jinou hodnotu v případě rovnosti čísel. Naštěstí v tomto případě pokud neplatí podmínka, algoritmus přesto vrátí „největší“ hodnotu ze zadaných čísel. Problém správnosti algoritmu může být například dělení dvou čísel – pokud by dělitel byl roven nule.)