2017-01-23 1 views
-5

나중에 for 루프를 사용하여 정의 할 변수가있는 문자열을 조작하는 double에 2x^2+3x+6과 같은 사용자가 입력 한 수학 방정식을 포함하는 입력 문자열을 구문 분석하는 방법을 파악하려고합니다. 기본적으로 문자열을 수학 방정식으로 변환 하시겠습니까?

,

for(x=0;x<=100;x++){ 
    String equation = "2x^2+3x+6"; 
    double y = equation; 
    System.out.println("Your point is x: " + x +" | Y: " + y); 
} 

나는 this old post을 발견하지만 BeanSheel 라이브러리는 나를 "x" 같은 매개 변수없이 실제 번호를 사용하는 것을 허용했다.

그래서 내가 얻으려고하는 것은 사용자가 주어진 함수를 그릴 프로그램입니다. 하지만 그림 부분에 대해서는 괜찮습니다.

+1

답은 사용자가 지정하지 못한 언어에 따라 다릅니다. –

+0

죄송합니다. 질문을 게시하는 데 익숙하지 않습니다. 자바입니다. 게시글에서 어떻게 지정합니까? 감사합니다 –

+0

우리는'컴파일러'과정에서이 문제를 해결하려고합니다. 우리는 가능한 규칙들로부터 파스 테이블을 만들고, 우리의 입력 파일을 읽고, 수학 방정식 –

답변

0

x 값의 수식 문자열에서 x의 모든 항목을 대체 할 수 있습니다. 그러면 링크 된 게시물을 사용하여 평가할 수 있습니다.

+0

실례지만,이 문제에 대해서는 두 가지 해결책이 있습니다. 'split'을 실행하고 Stringbuilder를 사용하여 String을 다시 작성하십시오. 어느 것이 효율적입니까? –

+0

둘 다 시도해보십시오. 나는 그것이 먼저 작동하도록 걱정할 것입니다. –

관련 문제