Kvadratická rovnice
1. KvadratickaRovnice
1.1. Analýza a návrh řešení
Obecný předpis kvadratické rovnice je:
- Koeficient
, který představuje koeficient v kvadratickém členu - Koeficient
, který představuje koeficient v lineárním členu - Konstanta
, která představuje absolutní člen
Ve vývojovém diagramu nejsou zaznamenány výjimky, které mohou být vyvolány chybnou konverzí zadaného textu na reálné číslo, představující jednotlivé koeficienty kvadratické rovnice. Konverzi na reálné číslo lze také ve Flowgorithm provést pomocí příkazu (zavolání funkce) ToReal (standardně však konverzi do příslušného datového typu provádí Flowgorithm sám). Tato funkce přijímá textový řetězec. Pokud nastane chyba při konverzi, aplikace sama vyvolá výjimku, ve které bude uživatele informovat o nastalém problému.
Pokud uživatel zadal
, pak se jedná o lineární rovnici:
Bude tedy volán podprogram (procedura) LinearniRovnice, kterému budou předány parametry b a c. Pokud je
, potom musí být vypočten diskriminant:
Na základě hodnoty diskriminantu se bude rozhodovat, který podprogram bude volán. Při splnění podmínky
jsou volány následující podprogramy:
- Pokud
je volána procedura pro výpočet reálných kořenů RealneKoreny - Pokud
je volána procedura pro výpočet komplexních kořenů KomplexniKoreny
V případu kdy
je volána procedura pro výpočet dvojitého kořenu kvadratické rovnice DvojityKoren
Pokud uživatel zadá
, pak se jedná o lineární rovnici. V tomto případě bude volán podprogram LinearniRovnice.
Obrázek 1: Hlavní program KvadratickaRovnice pro výpočet kořenů kvadratické, nebo lineární rovnice
Pokud koeficient kvadratického členu je roven nule
, potom je volán podprogram (procedura) LinearniRovnice, který vypočítá kořeny na základě předaných parametrů. Formální parametry jsme pro přehlednost pojmenovali stejnými identifikátory, jakými jsou pojmenovány skutečné parametry v hlavním programu. Máme tedy tři možnosti při výpočtu kořenů lineární rovnice:
Na základě předchozích výpočtů vidíme, že výpočet kořenu závisí na hodnotách obou parametrů, tj. zda jsou rovny nule. Použitím dvou bloků rozhodování můžeme sestavit vývojový diagram podprogramu LinearniRovnice - viz Obrázek 2.
Obrázek 2: Podprogram LinearniRovnice - výpočet kořenů lineární rovnice
Pokud platí, že
je vypočten diskriminant. Pokud diskriminant není roven nule a zároveň je větší než 0, je proveden výpočet reálných kořenů kvadratické rovnice na základě vzorce:
Ve vzorci pod odmocninou je použit výpočet diskriminantu, ale poněvadž jsme si již diskriminant vypočítali v hlavním programu, je jednodušší diskriminant předat podprogramu, který jeho hodnotu ve svém výpočtu využije - viz Obrázek 3.

Obrázek 3: Podprogram RealneKoreny - výpočet reálných kořenů kvadratické rovnice
Pro případ, že je
, je volána procedura pro výpočet komplexních kořenů KomplexniKoreny, které jsou předány stejné parametry jako v případě předchozí procedury RealneKoreny. Komplexně sdružené kořeny se skládají z reálné a imaginární části:
Následující vývojový diagram popisuje podstatu výpočtu a zobrazení jednotlivých kořenů - viz Obrázek 4.

Obrázek 4: Podprogram KomplexniKoreny - výpočet komplexně sdružených kořenů kvadratické rovnice
Poslední volanou procedurou je podprogram DvojityKoren a to za podmínky, že
. V tomto podprogramu je vypočten a vypsán dvojitý reálný kořen kvadratické rovnice:
Následující vývojový diagram zachycuje podstatu řešení - viz Obrázek 5.

Obrázek 5: Podprogram DvojityKoren - výpočet dvojitého kořene kvadratické rovnice












![x_1,_2 = \frac{-b \pm i \sqrt[]{-D} }{2 \cdot a } x_1,_2 = \frac{-b \pm i \sqrt[]{-D} }{2 \cdot a }](https://phix.zcu.cz/moodle/filter/tex/pix.php/120d0fbd9f1caaceb664c64714391434.gif)
