Написать функцию, обеспечивающую решение квадратного уравнения - C#
Формулировка задачи:
Написать функцию, обеспечивающую решение квадратного уравнения. Параметрами функции должны быть коэффициенты a, b, c (входные параметры) и корни уравнения x1, x2 (выходные параметры). Значение, возвращаемое функцией, должно передавать в вызывающую программу информацию о наличии у уравнения корней: 2 – два разных корня, 1 – корни одинаковые, 0 – уравнение не имеет решения. Кроме того, функция должна проверять корректность исходных данных. Если исходные данные неверные, то функция должна возвращать -1.
Непонятно условие задания. Что нужно возвращать индексы или корни? Если индексы, то у меня ошибка в switch case, нельзя использовать тип double.
static void Main(string[] args) { double x1, x2; Console.Write("Введите a:"); double a = Convert.ToDouble(Console.ReadLine()); Console.Write("Введите b:"); double b = Convert.ToDouble(Console.ReadLine()); Console.Write("Введите c:"); double c = Convert.ToDouble(Console.ReadLine()); switch (Program.Root(out x1, out x2)) { case -1: Console.WriteLine("Исходные данные неверные"); break; case 0: Console.WriteLine("Нет решения среди действительных значений,т.к дискриминант меньше нуля"); break; case 1: Console.WriteLine("имеет один корень уравнения{0}", x1); break; case 2: Console.WriteLine("Имеет два корня уравнения: первый корень {0}\nвторой корень {1}", x1, 2); break; } } static double Root(double a,double b,double c,out double x1,out double x2) { x1 = 0; x2 = 0; double d =Math.Pow(b,2)-4*a*c; if (d < 0) { return 0; } else if (d == 0) { x1 = -b / (2 * a); return 1; } else if (d > 0) { x1 = -b / (2 * a) - (Math.Sqrt(d)) / (2 * a); x2 = -b / (2 * a) + (Math.Sqrt(d)) / (2 * a); return 2; } else return -1; }
Решение задачи: «Написать функцию, обеспечивающую решение квадратного уравнения»
textual
Листинг программы
if(a==0) return -1;
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д