正文
java一元二次方程代码 java一元二次方程swing界面
小程序:扫一扫查出行
【扫一扫了解最新限行尾号】
复制小程序
【扫一扫了解最新限行尾号】
复制小程序
编写一个java程序,从键盘输入一元二次方程的3个系数a,b和c,输出这个方程的解
import javax.swing.JOptionPane;
public class quadratic_Equation
{
public static void main(String[ ] args)
{
double a, b, c, D, x1, x2 ;
String string_a, string_b, string_c, result;
String answer=" ";
string_a = JOptionPane. showInputDialog("输入方程中java一元二次方程代码的二次项系数");
a = Double.parseDouble(string_a);
string_b = JOptionPane. showInputDialog("输入方程中java一元二次方程代码的一次项系数");
b = Double.parseDouble(string_b);
string_c = JOptionPane. showInputDialog("输入方程的常数项");
c = Double.parseDouble(string_c);
D = b*b-4*a*c; // 计算根的判别式
if( D 0 ){ // 有二个不相等的实数解
x1=(- b+Math.sqrt(D))/( 2*a );
x2=(- b-Math.sqrt(D))/( 2*a );
JOptionPane.showMessageDialog(null, "方程"+a+" x*x+"+b+"x +" +c+" =0的解为:x1="+x1+", x2="+x2,"解方程", JOptionPane.INFORMATION_MESSAGE);
}
if( D == 0 ){ // 有二个相等的实数解
x1 = x2 = -b / ( 2*a );
JOptionPane.showMessageDialog(null, "方程"+a+" x*x+"+b+"x +"+c+" =0的解为:x1=x2="+x1, "解方程", JOptionPane.INFORMATION_MESSAGE);
}
if( D 0 ){ // 无实数解
double r = -b / (2 * a);
double i = Math.sqrt(4 * a * c - b * b) / (2 * a);
answer = "X1= " + r + "+ " + i + "i X2= " + r + "- " + i + "i ";
JOptionPane.showMessageDialog(null, "方程"+a+" x*x+"+b+"x +" +c+" =0的复数解为:"+answer ,"解方程", JOptionPane.INFORMATION_MESSAGE);
}
}
}
用Java语言编写求解一元二次方程的解,方程系数从键盘输入若a为零输出
1)简介
一元二次方程 ax2+bx+c=0 的a、b、c三个参数由用户自行定义,通过该程序输出该一元二次方程的根。
对于该程序需要在“应声虫”的基础上进行参数的自定义,在定义完成后需要通过求根公式实现结果的输出,其中Math.sqrt()为对括号的内容进行开平方根。
2)任务代码
关于该程序的代码如下:
import java.util.Scanner;//导入java.util包下的Scanner类
public class Test2{//类名
public static void main(String[] args) {//程序主入口函数,带命令行参数
System.out.print("求ax^2+bx+c=0的根"+"\n");//输出标题
Scanner in=new Scanner(System.in);//创建scanner,控制台会一直等待输入,直到敲回车结束
System.out.print("请输入a的值:");//输出“提示”
int a=in.nextInt();//用户可自行定义a的值
System.out.print("请输入b的值:");//输出“提示”
int b=in.nextInt();//用户可自行定义b的值
System.out.print("请输入c的值:");//输出“提示”
int c=in.nextInt();//用户可自行定义c的值
double x1=((-b+Math.sqrt(b*b-4*a*c))/(2*a));//运用求根公式,并且Math.sqrt()为开平方根
double x2=((-b-Math.sqrt(b*b-4*a*c))/(2*a));//运用求根公式,并且Math.sqrt()为开平方根
System.out.print("x1="+x1+"\n"+"x2="+x2);//输出两个根的结果
}
}
3)运行结果
使用LICEcap进行动图的制作,运行结果动图如下:
用Java编写一程序,求解一元二次方程:aX2+bX+c=0。参数a、b及c从命令行做参数输入
public static main(String[] arg0){
if(arg0== null || arg0.length == 0){
System.out.println("请输入参数:a,b,c");
System.exit(0);
}
for(int i=0;iarg0.length;i++){
try {
Float.parseFloat(arg0[i]);
} Catch(Exception e){
System.out.println("请输入数字");
System.exit(0);
}
}
float a = Float.parseFloat(arg0[0]);
float b = 0;
float c = 0;
if(arg0.length = 2){
b = Float.parseFloat(arg0[1]);
}
if(arg0.length = 3){
c = Float.parseFloat(arg0[2]);
}
float tmp = b*b - 4*a*c;
if(tmp 0 ){
System.out.println("x无实数根");
System.exit(0);
}
if(a==0 b==0 c==0){
System.out.println("x有任意实数根");
System.exit(0);
}
float result = (-1)*b/(2*a);
if(tmp == 0){
System.out.println("x1=x2="+result);
System.exit(0);
}
float x1 = ((-1)*b+java.lang.Math.sqrt(tmp))/(2*a);
float x2 = ((-1)*b-java.lang.Math.sqrt(tmp))/(2*a);
System.out.println("x1="+x1);
System.out.println("x2="+x2);
}
Java 如何编程实现一元二次方程的求解
//求解一元二次方程ax^2+bx+c=0的实根和复根,Test类是主类
class OnceBasicQuadraticEquation //求解一元二次方程ax^2+bx+c的实根和复根的类,其中getRoot()方法求根和显示根
{
private double a; //方程的二次项系数
private double b; //方程的一次项系数
private static double c; //方程的常数项
//以上三个成员变量分别是方程的系数
OnceBasicQuadraticEquation() //无参构造方法
{
a = 0;
b = 0;
c = 0;
}
OnceBasicQuadraticEquation(double a,double b,double c) //有参构造方法
{
this.a = a;
this.b = b;
this.c = c;
}
public void setA(double a)
{
this.a = a;
}
public double getA()
{
return a;
}
public void setB(double b)
{
this.b = b;
}
public double getB()
{
return b;
}
public void setC(double c)
{
this.c = c;
}
public double getC()
{
return c;
}
//以上六个方法分别对应三个系数的置取方法
public double getDlt() //计算判别式Δ=b^2-4ac的值
{
double result = Math.pow(b,2) - 4 * a * c;
return result;
}
private double getRightRoot() //求解右侧较大实根的方法
{
double rightRoot = 0;
rightRoot = (-b + Math.sqrt(getDlt())) / (2 * a);
return rightRoot;
}
private double getLeftRoot() //求解左侧较小实根的方法
{
double leftRoot = 0;
leftRoot = (- b - Math.sqrt(getDlt())) / (2 * a);
return leftRoot;
}
public void getRoot() //求解并显示实根或复根的方法
{
if(a==0)
{
if(b==0)
{
if(c==0)
{
System.out.println("一元二次方程:" + getA() + "x^2+" //a、b、c全为零时,定义方程有无穷多解。
+ getB() + "x+"
+ getC() + "\t有无穷多解。");
}
else
{
//二次项和一次项系数为零,但常数项不为零,方程变为不等式,无解。
System.out.println("一元二次方程:" + getA() + "x^2+"
+ getB() + "x+"
+ getC() + "\t无解。");
}
}
else
{
//二次项系数为零,一次项系数不为零,方程是一次方程,有唯一解。
double result = 0;
result = -getC() / getB();
System.out.println("一元二次方程:" + getA() + "x^2+"
+ getB() + "x+"
+ getC() + "\t有唯一解:" + result);
}
}
else //二次项系数不为零,方程有两个实根或复根。
{
if(getDlt()==0) //判别式Δ=b^2-4ac=0,方程有两个相等实根。
{
double result = 0;
result = -getB() / (2 * getA());
System.out.println("一元二次方程:" + getA() + "x^2+"
+ getB() + "x+"
+ getC() + "\t有唯一解:" + result);
}
else if(getDlt()0) //判别式Δ=b^2-4ac0,方程有两个相异实根。
{
System.out.println("一元二次方程:" + getA() + "x^2+"
+ getB() + "x+"
+ getC() + "\t有两个实根:" + getLeftRoot() + "和" + getRightRoot());
}
else //判别式Δ=b^2-4ac0,方程有两个复根。
{
//double imaginaryNumber1 = 0;
double imaginaryNumber = 0;
double realNumber = 0;
imaginaryNumber = Math.sqrt(-getDlt()) / (2 * a);
realNumber = -getB() / (2 * a);
System.out.println("一元二次方程:" + getA() + "x^2+"
+ getB() + "x+"
+ getC() + "\t有两个复根:"
+ realNumber + "±" + imaginaryNumber + "i");
}
}
}
}
public class Test
{
public static void main(String [] args)
{
OnceBasicQuadraticEquation e1 = new OnceBasicQuadraticEquation(4,13,3);
e1.getRoot();
}
}
如何用java编写一元二次方程的求根问题
import java.util.Scanner;
public class 一元二次方程 {
public static void main(String[] args) {
System.out.println("请输入你一元二次方程的a,b,c");
Scanner input=new Scanner(System.in);
int a=input.nextInt();
int b=input.nextInt();
int c=input.nextInt();
double d=b*b-4*a*c;
double e,f;
if (d==0){
System.out.println("这是个完全平方");
e=f=-b/2*a;
System.out.print(e);
}
else if(d0) {
System.out.println("无效根");
}
else {
System.out.println("这是个不完全平方,需要用求根公式");
double g=Math.sqrt(Math.abs(b));
e=-(b+g)/2*a;
f=-(e);
System.out.println("第一根是"+e);
System.out.println("第二根是"+f);
}
}
}
这是我的运行结果
扩展资料:
利用java编程解决数学上的解方程题,我们需要把方程求解的思路写出来,然后对应到每一步具体的求解步骤上。就比如解一元二次方程,需要我们把解方程的求根公式,判断式写出,最后用代码表示出来就好了。
需要注意的是,java中有特定的包和数学函数去求解数学问题,比如求根号可以用Math.sqrt()函数,求绝对值用Math.abs()函数
用Java代码实现解一元二次方程
public class Equation {
private double a, b, c;
public Equation(double a, double b, double c) {
this.a = a;
this.b = b;
this.c = c;
}
public static void main(String[] args) throws Exception {
//j*(j-1) = 40;
//j*j - j - 40 =0
double[] results = new Equation(1, -1, -40).analyze();
for(int i = 0; i results.length; i++){
System.out.println("j = " + results[i]);
}
}
public double[] analyze() throws Exception {
double delt = b * b - 4 * a * c;
if (delt 0) {
throw new Exception("NO result");
} else if (delt == 0) {
double[] ary = { -b / (2 * a) };
return ary;
} else {
double[] ary = new double[2];
ary[0] = (-b + Math.sqrt(delt)) / (2 * a);
ary[1] = (-b - Math.sqrt(delt)) / (2 * a);
return ary;
}
}
}
----------testing
j = 6.84428877022476
j = -5.84428877022476
java一元二次方程代码的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于java一元二次方程swing界面、java一元二次方程代码的信息别忘了在本站进行查找喔。