1. KvadratickaRovnice

1.3. Výsledný kód

Následující zdrojový kód je kompletací předešlých kódů programu KvadratickaRovnice, který je umístěn v souboru Program.cs - viz Kód 1.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
namespace KvadratickaRovnice
{
    class Program
    {
        static void Main(string[] args)
        {
            /* Deklarace: 'a' ... koeficient v kvadratickém členu;  'b' ... koeficient 
             * v lineárním členu; 'c' ... absolutní člen; * 'd' ... diskriminant */
            double a, b, c, d;
 
            // Informace o výpočtu kvadratické rovnice
            Console.WriteLine("Výpočet kořenů kvadratické rovnice ax^2 + bx + c = 0:");
 
            // Výzva pro zadání koeficientu v kvadratickém členu
            Console.Write("Zadejte a :");
            // Pokud nedojde ke konverzi textu na číslo
            if (!double.TryParse(Console.ReadLine(), out a))
                // Vypsání chybové hlášky v konzole
                Console.WriteLine("Špatně zadaná hodnota A, program počítá s 0");
 
            // Výzva pro zadání koeficientu v lineárním členu
            Console.Write("Zadejte b :");
            // Pokud nedojde ke konverzi textu na číslo
            if (!double.TryParse(Console.ReadLine(), out b))
                // Vypsání chybové hlášky v konzole
                Console.WriteLine("Špatně zadaná hodnota B, program počítá s 0");
 
            // Výzva pro zadání absolutního členu
            Console.Write("Zadejte c :");
            // Pokud nedojde ke konverzi textu na číslo
            if (!double.TryParse(Console.ReadLine(), out c))
                // Vypsání chybové hlášky v konzole
                Console.WriteLine("Špatně zadaná hodnota C, program počítá s 0");
 
            // Pokud koeficient kvadratického členu je roven nule potom...
            if (a == 0)
                // Volání metody pro výpočet lineárni rovnice
                LinearniRovnice(b, c);
            // Jinak...                            
            else
            {
                // Výpočet diskriminantu
                d = Math.Pow(b, 2) - 4 * a * c;
                // Pokud diskriminant není roven nule, potom...
                if (d != 0)
                    // Pokud diskriminant je větší než nula, potom...
                    if (d > 0)
                        // Volání metody pro výpočet reálných kořenů kvadr. rovnice - předání parametrů
                        RealneKoreny(a, b, d);
                    // Jinak...
                    else
                        // Voláni metody pro výpočet komplexně sdružených kořenů kvadr. rovnice
                        KomplexniKoreny(a, b, d);
                // Jinak...
                else
                    // Zavoláni metody pro výpočet dvojitého kořenu
                    DvojityKoren(a, b);
            }
 
            // Čekání na stisk klávesy -> ukončení programu
            Console.ReadKey();
        }
 
        //--- Specifikace metody bez návratu pro výpočet lineární rovnice 'bx + c = 0'
        /* Vstupní parametry (předány hodnotou): 'b' ... koeficient v lineárním
         * členu; 'c' ... absolutní člen */
        static void LinearniRovnice(double b, double c)
        {
            // Pokud první parametr je roven nule potom...
            if (b == 0)
                // Pokud druhý parametr je roven 0 potom...
                if (c == 0)
                    // Nekonečně mnoho řešení - vypsání textu v konzole
                    Console.WriteLine("Nekonečně mnoho řešení - každé x");
                // Jinak... 
                else
                    // Žádné řešení - vypsání textu v konzole
                    Console.WriteLine("Žádné řešení - žádné x");
            // Jinak...                                                                                                   
            else
                // Vypočtení hodnoty kořenu - vypsání textu v konzole
                Console.WriteLine("Lineární rovnice - kořen je: x = " + (-c / b));   
        }
 
        //--- Specifikace metody bez návratu pro výpočet reálných kořenů kvadr. rovnice
        /* Vstupní parametry (předány hodnotou): 'a' ... koeficient v kvadratickém členu;  
         * 'b' ... koeficient v lineárním členu; 'd' ... diskriminant */
 
        static void RealneKoreny(double a, double b, double d)
        {
            /* Deklarace: 'x1' ... první reálný kořen kvadr. rovnice; 
             * 'x2' ... druhý reálný kořen kvadr. rovnice */
            double x1, x2;
            // Výpočet prvního kořenu
            x1 = (-b + Math.Sqrt(d)) / (2 * a);
            // Výpočet druhého kořenu
            x2 = (-b - Math.Sqrt(d)) / (2 * a);
            // Vypočtení hodnot kořenů - vypsání textu v konzole ('\n' - zařádkování)
            Console.WriteLine("Kořeny jsou:\n  x1 = " + x1.ToString() +
                "\n  x2 = " + x2.ToString()); 
        }
 
        //--- Specifikace metody bez návratu pro výpočet komplexně sdružených kořenů kvadr. rovnice
        /* Vstupní parametry (předány hodnotou): 'a' ... koeficient v kvadratickém členu;  
         * 'b' ... koeficient v lineárním členu; 'd' ... diskriminant */
        static void KomplexniKoreny(double a, double b, double d)
        {
            /* Deklarace: 're' ... reálná složka kořenu kvadr. rovnice; 
             * 'im' ... imaginární složka kořenu kvadr. rovnice */
            double re, im;
            // Výpočet reálné složky kořenu kvadr. rovnice
            re = -b / (2 * a);
            // Výpočet imaginární složky kořenu kvadr. rovnice
            im = Math.Sqrt(Math.Abs(d)) / (2 * a);
            // Výpis hodnot komplextních kořenů - vypsání textu v konzole ('\n' - zařádkování)
            Console.WriteLine("Kořeny jsou komplexní: \n  x1 = " + re.ToString() + " + " + 
                im.ToString() + "i\n  x2 = " + re.ToString() + " - " + im.ToString() + "i");
        }
 
        //--- Specifikace metody bez návratu pro výpočet dvojitého reálné kořenu kvadr. rovnice
        /* Vstupní parametry (předány hodnotou): 'a' ... koeficient v kvadratickém členu;  
         * 'b' ... koeficient v lineárním členu */
        static void DvojityKoren(double a, double b)
        {
            /* Deklarace: 'x' ... dvojitý reálný kořen kvadr. rovnice */
            double x;
            // Výpočet dvojitého reálného kořenu
            x = -b / (2 * a);
            // Vypočtení hodnoty dvojitého reálného kořenu - vypsání textu v konzole
            Console.WriteLine("Dvojitý reálný kořen je:\n  x = " + x.ToString());
        }
    }
}

Kód 1: Program KvadratickaRovnice - deklarace hlavní statické metody Main včetně deklarací dalších metod

Výstup programu

Na následujícím výstupu programu vidíme, že uživatel zadal hodnotu koeficientu v kvadratickém členu rovnu 0. Díky tomu byla zavolána metoda LinearniRovnice a uvnitř metody byla vypsána hodnota vypočteného kořene lineární rovnice - viz Výstup programu 1 - Kód 1.   

Ukázka výpisu hodnoty kořene pomocí metody LinearniRovnice v programu KvadratickaRovnice

Výstup programu 1 - Kód 1: Ukázka výpisu hodnoty kořene pomocí metody LinearniRovnice v programu KvadratickaRovnice

V dalším printscreenu konzolové aplikace vidíme, že uživatel zadal hodnoty takovým způsobem, že diskriminant vyšel větší než nula. Znamená to tedy, že pro výpočet kořenů kvadratické rovnice bude zavolána metoda RealneKoreny - viz Výstup programu 2 - Kód 1.   

Ukázka výpisu hodnoty kořene pomocí metody RealneKoreny v programu KvadratickaRovnice

Výstup programu 2 - Kód 1: Ukázka výpisu hodnoty kořene pomocí metody RealneKoreny v programu KvadratickaRovnice

Pokud byl vypočten ze zadaných hodnot záporný diskriminant, je volána metoda pro výpočet komplexních kořenů (metoda KomplexniKoreny) - viz Výstup programu 3 - Kód 1. 

Ukázka výpisu hodnoty kořene pomocí metody KomplexniKoreny v programu KvadratickaRovnice

Výstup programu 3 - Kód 1: Ukázka výpisu hodnoty kořene pomocí metody KomplexniKoreny v programu KvadratickaRovnice

Posledním testovaným případem je výpočet dvojitého kořenu kvadratické rovnice pomocí metody DvojityKoren, kdy diskriminant byl vypočten ze zadaných hodnot jako nulový - viz Výstup programu 4 - Kód 1.   

Ukázka výpisu hodnoty kořene pomocí metody DvojityKoren v programu KvadratickaRovnice

Výstup programu 4 - Kód 1: Ukázka výpisu hodnoty kořene pomocí metody DvojityKoren v programu KvadratickaRovnice