Untitled
unknown
plain_text
23 days ago
2.6 kB
2
Indexable
Never
using System; using System.Text.RegularExpressions; class Program { static void Main(string[] args) { // Pobranie równania od użytkownika Console.WriteLine("Podaj równanie kwadratowe w postaci ax^2 + bx + c = 0: "); string rownanie = Console.ReadLine(); // Usunięcie białych znaków rownanie = rownanie.Replace(" ", ""); // Wyodrębnienie współczynników a, b, c za pomocą wyrażeń regularnych double a = 0, b = 0, c = 0; // Dopasowanie współczynnika a Match matchA = Regex.Match(rownanie, @"([+-]?\d*)x\^2"); if (matchA.Success) { string aStr = matchA.Groups[1].Value; if (string.IsNullOrEmpty(aStr) || aStr == "+") a = 1; else if (aStr == "-") a = -1; else a = Convert.ToDouble(aStr); } // Dopasowanie współczynnika b Match matchB = Regex.Match(rownanie, @"([+-]?\d*)x(?!\^2)"); if (matchB.Success) { string bStr = matchB.Groups[1].Value; if (string.IsNullOrEmpty(bStr) || bStr == "+") b = 1; else if (bStr == "-") b = -1; else b = Convert.ToDouble(bStr); } // Dopasowanie współczynnika c Match matchC = Regex.Match(rownanie, @"([+-]?\d+)(?!=)"); if (matchC.Success) { c = Convert.ToDouble(matchC.Groups[1].Value); } // Wyświetlenie wyodrębnionych współczynników Console.WriteLine($"\nWspółczynniki wyodrębnione z równania:"); Console.WriteLine($"a = {a}, b = {b}, c = {c}"); // Obliczenie delty double delta = b * b - 4 * a * c; Console.WriteLine($"\nDelta wynosi: {delta}"); // Sprawdzenie liczby rozwiązań na podstawie wartości delty if (delta > 0) { // Dwa rozwiązania double x1 = (-b + Math.Sqrt(delta)) / (2 * a); double x2 = (-b - Math.Sqrt(delta)) / (2 * a); Console.WriteLine($"Równanie ma dwa rozwiązania: x1 = {x1}, x2 = {x2}"); } else if (delta == 0) { // Jedno rozwiązanie double x0 = -b / (2 * a); Console.WriteLine($"Równanie ma jedno rozwiązanie: x = {x0}"); } else { // Brak rozwiązań rzeczywistych Console.WriteLine("Równanie nie ma rozwiązań w zbiorze liczb rzeczywistych."); } } }
Leave a Comment