Написать функцию, обеспечивающую решение квадратного уравнения - 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;
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д