Вопрос Ошибка в программе, которая решает квадратные уравнения, странный вывод. Java.

Регистрация
29 Дек 2013
Сообщения
81
Репутация
0
Спасибо
0
Монет
0
Решил написать программу, которая решает квадратные уравнения и имеет интерфейс.
import javax.swing.JFrame;

public class Kvadrat {
public static void main(String args[]){
Kvadrathelp k = new Kvadrathelp("Mda");
k.setVisible(true);
k.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
k.setSize(300,200);
k.setResizable(false);
k.setLocationRelativeTo(null);
}
}

Класс 2.
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import static java.lang.Math.*;

public class Kvadrathelp extends JFrame {
JButton b1,b2;
JLabel l1,l2,l3,l4,l5;
JTextField t1,t2,t3;
double x,y,z,m,v,q,o,x1,x2;
String a,b;
eHandler handler = new eHandler();
public Kvadrathelp(String s){
super(s);
setLayout(new FlowLayout());
b1 = new JButton("Очистить");
b2 = new JButton("Посчитать");
l1 = new JLabel("Введите первое число:");
l2 = new JLabel("Введите второе число:");
l3 = new JLabel("Введите третье число:");
l4 = new JLabel("");
l5 = new JLabel("");
t1 = new JTextField(10);
t2 = new JTextField(10);
t3 = new JTextField(10);
add(b1);
add(b2);
add(l1);
add(t1);
add(l2);
add(t2);
add(l3);
add(t3);
add(l4);
//add(l5);
b1.addActionListener(handler);
b2.addActionListener(handler);
}

public class eHandler implements ActionListener{
public void actionPerformed(ActionEvent e) {
try{
if(e.getSource()==b2){
m = ((y*y) - (4*x*z));
if (m>0)
{
v = ((-y + Math.sqrt(m))/(2*x));
q = ((-y - Math.sqrt(m))/(2*x));
a = ("x1= "+v);
b = ("x2= "+q);
l4.setText(a);
l5.setText(b);
}
else
{
if (m==0)
{
v = (-y/(2*x));
a = ("x= "+v);
l4.setText(a);
}
else
{
if (m<0)
{
l4.setText("Нет корней");
}
}
}
}

if (e.getSource()==b1){
t1.setText(null);
t2.setText(null);
t3.setText(null);
l4.setText("");
l5.setText("");
}
}catch (Exception ex){JOptionPane.showMessageDialog(null,"Введите в поле число!");}
}

}
}

На выводе получаю x=NaN
 
NaN - это тоже число, с определенными специфическими свойствами. К сожалению, джаву не знаю, поэтому больше ни чем помочь не могу
 
Назад
Сверху