Kvadratická rovnice
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
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. 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. Výstup programu 2 - Kód 1: Ukázka výpisu hodnoty kořene pomocí metody RealneKoreny 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. Výstup programu 4 - Kód 1: Ukázka výpisu hodnoty kořene pomocí metody DvojityKoren v programu KvadratickaRovniceVýstup programu



