打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
Java学习——96.一元二次方程的判断

对于昨天的一元二次方程,在输入的系数不正确时,在代码中并没有进行判断其是否为一元二次方程,而是直接进行求解。

但是在其求解之前,还应该判断一下系数是否正确。

比如当输入的a为0时,此是一个一元一次方程,只有一个解,其值为:x=-c/b。

当a不为0时,要判断其有没有实数根,即判断

的值是否大于0。

(1)如果大于0,其有两个实根,其解为昨天所示。

(2)如果等于0,其有两个相等的实根;

(3)如果小于0,其没有实数根。

本篇只用了图形用户界面方法,其运行结果如下:

(1)输入 a为0时:

(2)有两个实根的情况 :

(3)两个相等实根的情况:

(4)没有实数根的情况:

其完整代码如下:

import javax.swing.*;

import java.awt.*;

import java.awt.event.*;

//y=a^2+b*x+c

publicclass yiyuan extends JFrame implements ActionListener{

    privatestaticfinallongserialVersionUID = 1L;

    private JTextField a,b,c;

    private JButton button;

    private JTextArea text;

    public yiyuan() {

       super("求解一元二次方程");

       this.setVisible(true);

       this.setSize(260,240);

       this.setLocation(200,200);

       JPanel p=new JPanel();

       JLabel label1=new JLabel("求一元二次方程:ax^2+bx+c=0的值");

       JLabel label2=new JLabel("这里的^表示乘方");

       label2.setForeground(Color.blue);

       p.add(label1);

       p.add(label2);

       this.getContentPane().add(p,"North");

       JPanel p1=new JPanel();

       p1.add(new JLabel("请输入系数a:"));

       a=new JTextField(10);

       p1.add(a);

       p1.add(new JLabel("请输入系数b:"));

       b=new JTextField(10);

       p1.add(b);

       p1.add(new JLabel("请输入系数c:"));

       c=new JTextField(10);

       p1.add(c);

       button=new JButton("计算");

       button.addActionListener(this);

       p1.add(button,"");

       this.getContentPane().add(p1);

       text=new JTextArea();

       this.getContentPane().add(text,"South");

    }

    publicstaticvoid main(String args[]) {

       new yiyuan();

    }

    @Override

    publicvoid actionPerformed(ActionEvent arg0) {

       // TODO Auto-generatedmethod stub

       double ax,bx,cx;

       if(a.getText().equals("")||b.getText().equals("")||c.getText().equals("")) {

           text.setText("请输入系数");

           text.setForeground(Color.red);

       }

       else {

           ax=Double.parseDouble(a.getText());

           bx=Double.parseDouble(b.getText());

           cx=Double.parseDouble(c.getText());

           if(ax==0){

              text.setText("此方程不是一元二次方程,而是一元一次方程!\nx的解为:x="+(-cx)/bx);

              text.setForeground(Color.blue);

           }

           else{

              double r=Math.sqrt(Math.pow(bx, 2)-4*ax*cx);

              if(r>0){

                  double x1=(-bx+r)/(2*ax);

                  double x2=(-bx-Math.sqrt(Math.pow(bx,2)-4*ax*cx))/(2*ax);

                  text.setForeground(Color.black);

                  text.setText("方程"+a.getText()+"x^2+"+b.getText()+"x+"+c.getText()+"的值为:\nx1="+x1+"\nx2="+x2);

                  a.setText("");

                  b.setText("");

                  c.setText("");

              }

              elseif(r==0){

                  double x1=(-bx)/(2*ax);

                  text.setText("此方程有两个相等的实根,x1=x2="+x1);

              }

              else{

                  text.setText("此方程没有实数根");

                  text.setForeground(Color.green);

              }

           }

       }

    }

}

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
一元二次方程根的判别式
【步步高】2015届高三数学北师大版(通用,理)总复习学案:学案34 一元二次不等式及其解法
人教版2022-2023学年九年级数学上册一元二次方程根与系数的关系练习题含答案
巧用韦达定理的推论
2011中考数学一轮复习【代数篇】5.一元二次方程根与系数的关系
初升高数学之衔接专题:专题三 一元二次方程根与系数的关系
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服