Написать функцию, обеспечивающую решение квадратного уравнения - C#

Узнай цену своей работы

Формулировка задачи:

Написать функцию, обеспечивающую решение квадратного уравнения. Параметрами функции должны быть коэффициенты a, b, c (входные параметры) и корни уравнения x1, x2 (выходные параметры). Значение, возвращаемое функцией, должно передавать в вызывающую программу информацию о наличии у уравнения корней: 2 – два разных корня, 1 – корни одинаковые, 0 – уравнение не имеет решения. Кроме того, функция должна проверять корректность исходных данных. Если исходные данные неверные, то функция должна возвращать -1.
        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;   
           }
Непонятно условие задания. Что нужно возвращать индексы или корни? Если индексы, то у меня ошибка в switch case, нельзя использовать тип double.

Решение задачи: «Написать функцию, обеспечивающую решение квадратного уравнения»

textual
Листинг программы
if(a==0) return -1;

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

12   голосов , оценка 4.25 из 5
Похожие ответы