2014 dxdy logo

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

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




Начать новую тему Ответить на тему
 
 Java!
Сообщение27.03.2012, 23:22 


27/02/12
8
Такой вопрос, есть программа которая вычисляет квадратное уравнение, но если вводишь 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 
Заблокирован


01/02/11

97
Действительно странно. При b нет else.

 Профиль  
                  
 
 Re: Java!
Сообщение28.03.2012, 09:44 


26/08/11
2100
Какого черта проверяете $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 ] 

Модераторы: Karan, Toucan, PAV, maxal, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group