2. NejvetsiZe2CiselVcetneRovnosti

2.1. Analýza a návrh řešení

Jak název příkladu NejvetsiZe2CiselVcetneNerovnosti napovídá, tento příklad je modifikací předchozí příkladu NejvetsiZe2Cisel. Pokud uvažujeme již 3 relační operátory "Větší/Rovno/Menší" pro obecné řešení vznikají celkem 3 případy v závislosti na relačních operátorech (>, = , <):

  • A > B
  • A = B
  • A < B

V tomto případu však potřebujeme vypsat nejen největší hodnotu, ale také název proměnné, ve které je tato hodnota uložena. V řešení příkladu jsme u výpisu použili spojení textu určujícím název proměnné maxima a její hodnoty. Druhým způsobem je použití podprogramu ve formě funkce, jejíž návrat představuje textový řetězec obsahující název proměnné určující větší číslo a hodnotu této proměnné (u Flowgorithm nemusíme využívat konverze čísla na text a opačně, protože aplikace jí provádí sama). 

Ve vývojovém diagramu také nejsou zaznamenány výjimky, které mohou být vyvolány chybnou konverzí zadaného textu na celé číslo. Konverzi na celé číslo lze ve Flowgorithm provést pomocí příkazu (zavolání funkce) ToInteger, který přijímá textový řetězec a následně jej konvertuje na celé číslo. Pokud nastane chyba při konverzi, aplikace sama vyvolá výjimku, ve které bude uživatele informovat o nastalém problému. 

Vývojový diagram může vypadat následovně - viz Obrázek 1. Při volání podprogramu VetsiRovno jsou předány jak skutečné parametry, tak i jejich názvy - výsledný návratový textový řetězec bude obsahovat nejprve identifikátor (název) proměnné a její hodnotu. 

Porovnání dvou zadaných čísel včetně rovnosti

Obrázek 1: Porovnání dvou zadaných čísel včetně rovnosti

V deklaraci funkce VetsiRovno vidíme specifikované čtyři formální parametry - první dva slouží pro uložení hodnot z proměnných předaných z hlavního programu a další dva, které slouží pro uložení názvu těchto proměnných - viz Obrázek 2.  Podstata porovnání je stejná jako v hlavním programu s tím rozdílem, že do textové lokální proměnné podprogramu, uložíme text obsahující identifikátor (název) proměnné v hlavním programu - text v parametru a hodnotu parametru.

Podprogram (funkce) VetsiRovno

Obrázek 2: Podprogram (funkce) VetsiRovno

Další možností jak řešit daný problém, je volat dvě funkce - jednu s návratem hodnoty, druhou pro návrat názvu proměnné, ve které je uloženo větší číslo. Lze také použít podprogram, který bude vracet dva výstupy - název parametru a hodnotu většího čísla uloženého v parametru. Takových řešení existuje více a je jen na nás, jak efektivně budeme problém řešit.