Решение квадратного уравнения - C# (188718)

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

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

Всем добрый вечер,нужно мне решить задачу с квадратным уравнением.Думал,что тут сложного?Дискриминант вычислил и все дела,считай. Но вот в чём проблема.Проверку на 0,равно 0 оно через IF проходит.Но почему-то программа при любых значениях выдает "Действительных корней нет".
 private void button1_Click(object sender, EventArgs e)
        {
            string inputa = inputA.Text;
            string inputb = inputB.Text;
            string inputc = inputC.Text;
            double a = Convert.ToDouble(inputa);
            double b = Convert.ToDouble(inputb);
            double c = Convert.ToDouble(inputc);
            double D = (Math.Pow(b, 2)) - (4 * a * c);
            if (D > 0)
            {
                double x1 = (-b + Math.Sqrt(D)) / (2 * a);
                double x2 = (-b - Math.Sqrt(D)) / (2 * a);
                string outputX1 = Convert.ToString(x1);
                MessageBox.Show("X1=",outputX1);
                string outputX2 = Convert.ToString(x2);
                MessageBox.Show("X2=", outputX2);
            }
            else if (D == 0)
            {
                double x1 = (-b + Math.Sqrt(D)) / (2 * a);
                string outputX1 = Convert.ToString(x1);
                MessageBox.Show("Уравнение имеет один корень", outputX1);
            }
            else
            {
                MessageBox.Show("Действительных корней нет");
            }
Прошу тапками не кидатся,я просто не знаю у кого помощи просить.

Решение задачи: «Решение квадратного уравнения»

textual
Листинг программы
private void button1_Click(object sender, EventArgs e)
{
string inputa = inputA.Text;
            string inputb = inputB.Text;
            string inputc = inputC.Text;
            double a = Convert.ToDouble(inputa);
            double b = Convert.ToDouble(inputb);
            double c = Convert.ToDouble(inputc);
            double D = (Math.Pow(b, 2)) - (4 * a * c);
List<double> result = DoIt(D,a,b,c);
}
 
public List<double> DoIt(double D, double a, double b, double c)
{ 
public List<double> lista = new List<double>();
if (D > 0)
            {
                double x1 = (-b + Math.Sqrt(D)) / (2 * a);
                double x2 = (-b - Math.Sqrt(D)) / (2 * a);
                string outputX1 = Convert.ToString(x1);
                MessageBox.Show("X1=",outputX1);
                string outputX2 = Convert.ToString(x2);
                MessageBox.Show("X2=", outputX2);
              lista.Add(x1);
              lista.add(x2);
              return lista;
            }
            if (D == 0)
            {
                double x1 = (-b + Math.Sqrt(D)) / (2 * a);
                string outputX1 = Convert.ToString(x1);
                MessageBox.Show("Уравнение имеет один корень", outputX1);
                lista.Add(x1);
                return lista;
            }
            
                MessageBox.Show("Действительных корней нет");
            return null;
}

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


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

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

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