@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
Вы упустили проверку дискриминанта на то, является ли он положительным.
При приведенных коэффициентах он отрицателен, и уравнение не имеет решений.

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

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

Войти через центр авторизации
Похожие вопросы
Bell Integrator Ульяновск
До 400 000 ₽
Bell Integrator Хабаровск
До 400 000 ₽
Bell Integrator Ижевск
До 400 000 ₽
02 мая 2024, в 23:56
2000 руб./за проект
02 мая 2024, в 23:29
1500 руб./в час
02 мая 2024, в 23:16
7500 руб./за проект