2013-07-19 2 views
3

나는 학교 과제를 다하고 있습니다. 클래스를 구현하고 getSolution1 및 getSolution2 메소드를 제공해야합니다. 그러나 내가 알 수없는 코드에 2 가지 문제가 있습니다.이차 방정식, 구문 오류를 알아낼 수 없습니다.

문제 # 1이 줄에 :

solution1= ((-1*b)/> + Math.sqrt(Math.pow(b,2)-(4*a*c))); 

컴파일러는 나에게 말하고있다 : 구문 오류를 토큰 ">",이 토큰을 삭제합니다. 내 구문에 뭔가 잘못하고 있는지 알 수 없다.

문제 # 2는 OUPUT 라인에 다음 방법 펑 여기

내 전체 인 인수 문자열

적용되지 않습니다 다음 Math.pow에서

String quadEquation= "The quadratic equation is "+ a + Math.pow(("x"),2) + " + " + b+"x"+ " + " + c+ " =0"; 

나는라는 오류가 코드 :

 public class QuadraticEquation 

{ 

    double a; 
    double b; 
    double c; 
    double solution1; 
    double solution2; 

QuadraticEquation (double a, double b, double c){ 

    a= this.a; 
    b= this.b; 
    c= this.c; 
} 

public boolean hasSolution(){ 

    if ((Math.pow(b,2))- (4*a*c)<0){ 

    return false; 
    } 

    else 

    { 
    return true; 
    } 
} 

public double getSolution1 (double a, double b, double c) 

{ 

    if (hasSolution){ 

     solution1= ((-1*b) + Math.sqrt(Math.pow(b,2)-(4*a*c)))/2*a; 

    return solution1; 

    } 

} 

public double getSolution2 (double a, double b, double c){ 

    if (hasSolution){ 

     solution1= ((-1*b) - Math.sqrt(Math.pow(b,2)-(4*a*c)))/2*a; 
    return solution2; 
} 

} 

public String toString (double a, double b, double c){ 

    String quadEquation= "The quadratic equation is "+ a + "x^2" + " + " + b+"x"+ " + " + c+ " =0"; 

    return quadEquation; 

    } 

} 

이 항목은 학교 과제이므로이 문제를 해결하기위한 지침을 찾고 있습니다.

감사합니다.

+0

+1 솔직하게 설명하고 있습니다. – Subby

답변

2
solution1= ((-1*b) + Math.sqrt(Math.pow(b,2)-(4*a*c)))/2*a; 

자바에서 /> 같은 것은 없다.

String quadEquation= "The quadratic equation is "+ a + "x^2" + " + " + b+"x"+ " + " + c+ " =0"; 

문자열 "x"를 전달하는 반면 Math.pow에는 숫자가 필요합니다. 기호 "^"는 일반적으로의 힘을 말하기 위해 사용되므로 x^2는 2의 거듭 제곱입니다. 나는 표준 출력에 위 첨자를 쓰는 간단한 해결책이 없다고 생각합니다.

자바는 식 해결책

public double getSolution2 (double a, double b, double c){ 

    if (hasSolution){ 
     solution1= ((-1*b) - Math.sqrt(Math.pow(b,2)-(4*a*c)))/2*a; 
     return solution2; 
    } 
    return -1; // or throw an exception. 
} 

반환 -1 해결됩니다이없는 경우 반환 할 것을 이해할 수 없다.

+0

고마워요, 제가 변경을하면 오류가 제거됩니다. 하지만 그 변화를 만들면서 나는이 줄이 public double getSolution1 (double a, double b, double c, boolean hasSolution)이 잘못되었음을 깨달았다. double의 값을 반환하지 않습니다. 그래서 부울 hasSolution을 없애 버렸습니다. 하지만 이제는 내 진술 if (hasSolution)이 초기화되지 않았다는 말을하고있다. –

+0

@ user2559274 나는 그게 무슨 뜻인지 잘 모르겠습니다. 더블 리턴는 완벽하게 합리적입니다. 그 라인이 틀렸다고 생각한 이유는 무엇입니까? 질문에 새 코드를 추가하면 대답 할 수 있습니다. 그냥 몇 가지 .. 만약 (hasSolution) 충분해야합니다 .. "== 사실"필요가 없습니다. 또한 클래스 대신 메소드 내부에 solution1 및 solution2를 정의하십시오. 변수가 필요하지 않습니다. –

+0

원래 게시물에서 내 코드를 방금 업데이트했습니다. (return ((-1 * b) /) - Math.sqrt (Math.pow (b, 2) - (4 * a * c))) –

8

첫 번째 문제는 />를 함께 사용할 수 없다는 것입니다. 이것은 올바른 작동이 아닙니다. http://docs.oracle.com/javase/tutorial/java/nutsandbolts/opsummary.html

두 번째 문제는 Math.pow에 두 개의 숫자가 필요하기 때문입니다. 거기에 문자열이 있습니다. 그것은 사과라는 단어의 힘을 얻으려고 노력하는 것과 같습니다. 당신은 그것을 할 수 없습니다. 먼저 해당 문자열을 int로 변환해야합니다. How to convert a String to an int in Java?

관련 문제