2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




 
 Java!
Сообщение27.03.2012, 23:22 
Такой вопрос, есть программа которая вычисляет квадратное уравнение, но если вводишь b<0, то условие (if) не выполняет, а сразу переходит к else, а и с - выполняет норм. А так же не работает /n. Вот код программы
код: [ скачать ] [ спрятать ]
Используется синтаксис Java
private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {
        double a, b, c, d, d1, x1, x2;
       
        a = Double.parseDouble(jTextField1.getText());
        b = Double.parseDouble(jTextField2.getText());
        c = Double.parseDouble(jTextField3.getText());
       
        if (a<0)
        {
                jTextField5.setText(+a+"x^2 + " +b+ "x + " +c+ " = 0.");
        }
       
        if (b<0)
        {
                jTextField5.setText(+a+"x^2 " +b+"x + " +c+ " = 0.");
        }
       
        if (c<0)
        {
                jTextField5.setText(+a+"x^2 + " +b+"x " +c+ " = 0.");
        }
        else jTextField5.setText(+a+"x^2 + " +b+"x + " +c+ " = 0.");
       
        d = b*b-4*a*c;
        d1 = sqrt(d);
        x1 = (-b-d1)/(2*a);
        x2 = (-b+d1)/(2*a);
       
       
        if (d<0)
        {
                jTextField4.setText(String.valueOf("Рівняння розв*язків немає, бо Д = " + d));
        }
               
        else
        {
                jTextField4.setText("Д = " + d +"\n    Корінь з Д = " + d1 + "\n    x1 = " + x1 + "\n    x2 = " + x2);
        }
 

 
 
 
 Re: Java!
Сообщение27.03.2012, 23:48 
Действительно странно. При b нет else.

 
 
 
 Re: Java!
Сообщение28.03.2012, 09:44 
Какого черта проверяете $a<0, b<0, c<0$, когда на выходе все равно одно и то же. Вам нужно анализировать $a=0$ прежде чем на нем делить. Надо рассмотреть такие варианты:
$\\a=0, b=0, c=0\\
a=0, b=0, c\ne 0\\
a=0, b \ne 0\\
a \ne 0$
И с дискриминантом. Сначало проверять, и только если он неотрицателен, тогда вычислять квадратный корень.

Или по ленивому при $a=0$, сообщение "Простите, но это не квадратное уравнение. Я таких не решаю!"

 
 
 [ Сообщений: 3 ] 


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group