@neverbethesameagain

Почему при выполнении кода не выдаются нужные значения?

Пытаюсь сделать код, который будет решать квадратное уравнение.
Код запускается без ошибок , но какие бы значения не подставил, выдает
х1 = NaN ;х2 = NaN

Догадываюсь, что я что-то упустил, но не могу понять, что именно. Можете натолкнуть на мысль, в чем просчёт ?

package new1;
class Uravnen{
           double  x1, x2; // корни уравнения
           double   a,b,c;  // известные значения
           double      D;  //дискриминант 
        
        void myMeth(double  a1, double  b1, double   c1){
            this.a = a1;
            this.b = b1;
            this.c = c1;
            
            D =   (b1*b1) - 4*a*c;  //вычисление дискрииминанта
            x1 = (-b1 + Math.sqrt(D))/(2 * a1);  //вычисление корней х1 и х2
            x2 = (-b1 - Math.sqrt(D))/(2 * a1);
            
            System.out.println( "х1 = " + x1 + " ;х2 = " + x2);
            
        }
         
         
    }
class New1{      
    public static void main(String args[]){
                 Uravnen n1 = new Uravnen();     
                 n1.myMeth(5, -14, 17);
                      
    }
}
  • Вопрос задан
  • 59 просмотров
Решения вопроса 1
GavriKos
@GavriKos
Вы упустили проверку дискриминанта на то, является ли он положительным.
При приведенных коэффициентах он отрицателен, и уравнение не имеет решений.

Кстати еще у вас дикая мешанина из использования членов класса и аргументов.
Намного правильнее задавать коэффициенты через конструктор, если что.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы