java的思想就是类,敬请编程高手在此指教。
public class Fc{
int a,b,c;
double gen()
{double i;
double j=1.0;
double k=1.0;
i=b*b-4*a*c;
if(i>=0)
j=((-b)+Math.sqrt(i))/2*a;
k=((-b)-Math.sqrt(i))/2*a;
return(j);
}
public static void main(String[] args) {
Fc s=new Fc();
s.a=1;
s.b=5;
s.c=6;
System.out.println("j");
System.out.println("k");
}
}运行结果不是自己期望的。是字母j和k。前提是在一元二次方程a*x^2+b*x+c=0的b^2-4*a*c>=0时的俩根。可以把你的编程写上。谢谢!
public class SquareEquation {
double a, b, c;
public void setA(double a) {
this.a = a;
}
public void setB(double b) {
this.b = b;
}
public void setC(double c) {
this.c = c;
}
public double getRootOne() {
double disk = calculateValidDisk();
return (-b + Math.sqrt(disk)) / (2 * a);
}
public double getRootTwo() {
double disk = calculateValidDisk();
return (-b - Math.sqrt(disk)) / (2 * a);
}
private double calculateValidDisk() {
if (a == 0) {
throw new EquationException("不是二次方程", EquationException.NONE_EQUATION);
}
double disk = b * b - 4 * a * c;
if (disk < 0) {
throw new EquationException("没有实根", EquationException.NO_REALROOT);
}
return disk;
}
}
扩展资料
比如 方程是 x平方+3x+2=0;
public class Test
{
public static void main(String []args)
{
double a=1;//二次项系数
double b=3;//一次项系数
double c=2;//常数项
double s=b*b-4*a*c;
if(s<0)
{
System.out.print("b*b-4ac<0,方程无解!");
return;
}
double ss=Math.sqrt(s);
double x1=(-1*b-ss)/(2*a);
double x2=(-1*b+ss)/(2*a);
System.out.println("x1="+x1);
System.out.println("x2="+x2);
}
}
参考资料:百度百科 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(d<0) {
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代码。
先创建方程类Fc,属性a,b,c分别代表一元二次方程的系数,两个有参和无参的构造方法Fc,一个求方程实数根的方法getRoot。
最后写main方法,用于测试程序,以下是代码,图片为运行结果截图。
public class Fc {
int a;
int b;
int c;
public Fc() {
super();
}
public Fc(int a, int b, int c) {
super();
this.a = a;
this.b = b;
this.c = c;
}
public String getRoot(){
int m = b*b-4*a*c;
if(m>=0){
double x1 = (-b + Math.sqrt(m))/(2*a);
double x2 = (-b - Math.sqrt(m))/(2*a);
return "x1="+x1+",x2="+x2;
}else{
return "没有实根.";
}
}
public static void main(String[] args) {
Fc fc = new Fc(1,5,6);
System.out.println(fc.getRoot());
}
}
扩展资料:
java中变量的定义:数据类型 变量名,如:int x;就是定义了一个int类型的变量x。如果不定义变量就直接使用,会报“cannot be resolved to a variable”错误,意思是无法解析为变量。
java中的类是一个模板,它描述一类对象的行为和状态,而对象是类的一个实例,有状态和行为,例如定义了一个Cat类,它有属性name和age,有无参构造方法Cat,有方法speak,表示该类的一个行为说话,代码如下:
public class Cat {
String name;
int age;
public Cat() {
super();
}
public void speak(){
System.out.println("喵喵喵!!!");
}
}
本回答被网友采纳程序总体思想没有错,不过有一些小问题
1、输出语句中双引号包裹的代表原样输出:
这里需要去掉双引号
2、if语句,不写括号来注明代码块的情况下,只会把条件后一句当做代码块:
这里需要用大括号注明区域:
3、变量错误,输出的j和k为方法内定义,而不是在全局定义,而代码中却在另一个方法中调用:
这明显是调用不到的,不过可以把方法改成无返回值的void,然后在方法内输出值.
贴上修改后的代码:
#code:
#out:
java 函数的定义
习惯把函数也叫成方法,都是一个意思;函数是具备特定功能的一段代码块,解决了重复性代码的问题。
为什么要定函数呢?
目的是为了提高程序的复用性和可读性。
函数的格式
修饰符返回值类型函数名(形式参数类型1 参数名1,形式参数类型2 参数名2,形式参数类型3 参数名3......)
{
函数体语句;
return 返回值;
}
(1).修饰符:public 公共的static 静态的
(2).返回值类型:就是函数所实现的功能结果的数据类型。
(3).方法名:自己定义,符合标识符命名规则就行;驼峰命名规则 :单个单词首字母小写,多个单词后面的单词首字母大写。
(4).参数列表:即形式参数列表,用于接收实际参数。
(5).参数类型:参数的数据类型
(6).参数名:即变量名
(7).函数体语句:就是函数要完成的功能
(8).return:用来结束函数
(9).返回值:即这个函数的功能的结果 ,由return带回调用地方。
注意:void 表示不确定返回值类型,不能理解为没有返回值,只是返回值的类型不确定而已;
此外,返回值类型为void时,由于其返回值类型不能确定,故不能定义形式参数变量来接收;
当返回值类型为void时,return可以不写;但是当返回值类型为其他如int String等时就必须写,否则编译会出错。
本回答被网友采纳java问题 一元二次方程求根
while(repeat>0){ a=in.nextInt();b=in.nextInt();c=in.nextInt();if 唯一根...你的输出和计算方法;else if 两个根,你的根和输出 else 没有根;repeat--;} 上面是伪代码的,你也有计算公式的,你应该可以把这个填充一下的
如何用java编写一元二次方程的求根问题
} public double getRootTwo() { double disk = calculateValidDisk();return (-b - Math.sqrt(disk)) \/ (2 * a);} private double calculateValidDisk() { if (a == 0) { throw new EquationException("不是二次方程", EquationException.NONE_EQUATION);} double disk = b * b - ...
用JAVA定义一个一元二次方程?
} else { System.out.println("方程无解");} } } 在main()方法中定义一个一元二次方程对象并调用求根方法,可以这样写:public static void main(String[] args) { \/\/ 创建一个一元二次方程对象 Equation eq = new Equation();\/\/ 设置系数 eq.setA(1);eq.setB(2);eq.setC(1);\/\/ ...
用Java语言编写求解一元二次方程的解,方程系数从键盘输入若a为零输出...
1)简介 一元二次方程 ax2+bx+c=0 的a、b、c三个参数由用户自行定义,通过该程序输出该一元二次方程的根。 对于该程序需要在“应声虫”的基础上进行参数的自定义,在定义完成后需要通过求根公式实现结果的输出,其中Math.sqrt()为对括号的内容进行开平方根。 2)任务代码 关于该程序的代码如下:i...
Java 如何编程实现一元二次方程的求解
\/\/求解一元二次方程ax^2+bx+c=0的实根和复根,Test类是主类 class OnceBasicQuadraticEquation \/\/求解一元二次方程ax^2+bx+c的实根和复根的类,其中getRoot()方法求根和显示根 { private double a; \/\/方程的二次项系数 private double b; \/\/方程的一次项系数 private static double...
跪求计算机JAVA大神用eclipse解一元二次方程,求答案,谢谢
\/\/ 程序主入口函数,带命令行参数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的值:");\/\/ 输出“提示”...
java怎么求一元二次方程虚根,虚根i怎么定义啊。
当判别式<0,这个时候就产生虚根了,写起来比较麻烦,算法是这样的举个简单例子说明吧: 求一元二次方程:x^2+x+1=0的虚根 解:△=1^2-4×1×1=-3 由求根公式x=[-b±√(-△)i]\/2a =[-1±√(-△)i]\/2=[-1±√3i]\/23、NAN这个我写一下它的全称你就知道了no a number就是...
跪求计算机JAVA大神用eclipse解一元二次方程,求答案,基础一点,蟹蟹_百 ...
public class Test { public static void main(String[] args) throws Exception { \/\/ 标准格式: ax^2+bx+c=0 double[] xs=solve(4,4,0);\/\/这里参数即一元二次方程的三个系数a,b,c if(xs==null)System.out.println("解数:0");else { System.out.println("解数:"+xs.length);...
已知y=x的平方-5x+6用java编程求根
得出y>=-0.25估计你这y值肯定是大于0的,所以必然有两个不同解 百度百科:一元二次方程配方式:a(x+b\/2a)^2=(b^2-4ac)\/4a^2 得出x=b\/2a±根号下((b^2-4ac)\/4a^2)float a1=-5\/2;float a2=Math.sqrt((1+4y)\/4);float x1=a1+a2;float x2=a1-a2;x1和x2即为方程解 ...
newton法求方程的根的java程序???
牛顿迭代法就是二分法求根思想,根x在(a,b)间:1)取a,b的中c=(a+b)\/2,将根区间分两半,判断根在哪个区间。三种情况:2)f(c) <= 精度,C为求得根 3)if f(c)*f(a)<0,求根区间在[a,c],b=c,转1)4)if f(c)*f(a)>0,求根区间在[c,b],a=c,转1)double...