2016-03-19 107 views
-3

好吧,我想制作一个程序,可以找到二次方程的判别式以及根数。我迄今为止创建了该程序来查找判别式,但是我无法调用该方法来查找根数。有人可以向我解释这是如何完成的吗?谢谢。如何调用带参数的方法?

public class quadMethods 
{ 
    public static void main (String args[]) 
    { 
     new quadMethods(); 
    } 


    public quadMethods() 
    { 
     System.out.println ("The discriminant is: " + discrim (1, 6, 8)); 
     System.out.println ("The number of roots is: " + numRoots (1, 6, 8)); 
    } 
    public double discrim (double a, double b, double c) 
    { //assumes ax^2+bx+c=0 
     //returns the discriminant of the quadratic equation 
     //b*b-4*a*c 
     //replace the return 1 
    double discriminant = b*b-4*a*c;  
     return discriminant; 
    } 


    public int numRoots (double a, double b, double c) 
    { //assumes ax^2+bx+c=0 
     //returns the number of roots for the quadratic equation 
     //call discrim method, make an if to return 0, 1, or 2. 
     //replace the return 1 
    return 1; 
    } 
} 
+1

不要编辑你的问题,有人花时间回答你。 –

+0

对不起。我想删除这篇文章,但我似乎无法这样做。 – asdfghjkl9999

+0

否,因为你有一个接受的答案,删除的原因是什么? –

回答

0

哦,顺便说一句,我一直在寻找的答案是:

public double discrim (double a, double b, double c) 
{ 
    return (b*b)-(4*a*c); 
} 


public int numRoots (double a, double b, double c) 
{ 
double d = discrim (a,b,c); 
if (d>0) 
return 2; 
else if (d<0) 
return 0; 
else 
return 1; 
} 
0
public static void main (String args[]) 
{ 
    quadMethods instance = new quadMethods(); 

    System.out.println(instance.discrim(1.0, 2.0, 3.0)); 

    int myRoots = instance.numRoots(1.0, 2.0, 3.0); 
} 
+0

我不明白。当我尝试添加我的代码以查找根数时,它仍然显示没有找到名为“判别式”的字段 – asdfghjkl9999

+0

它不应该那样做......可以分享完整的错误详细信息吗? – obe

+0

我的不好。这不是它所做的。但相反,输出继续循环“判别式为:4.0”,而不是实际提供二次方程所具有的根数。 – asdfghjkl9999

0

您需要创建一个对象,并调用方法

quadMethods qMet =new quadMethods(); 
qMet.numRoots (...); 

,你在做什么,到现在为止我只希望创建一个对象(但匿名)...

+0

等待,但它说“失踪”,“在声明结束时“当我输入”qMet.numRoots“ – asdfghjkl9999