2016-07-27 12 views
0

나는 현재 결과를 보여줄뿐만 아니라 그 결과에 어떻게 도달했는지를 보여주는 계산기가있는 Android 앱을 만들고 있습니까?Java에서 계산의 단계별 계산을 표시하는 방법이 있습니까?

아래 코드의 결과를 단계별로 계산할 수있는 라이브러리 또는 방법이 있습니까?

int a = 5; 
int b = 6 
int c = 7; 
int d = 8; 

int result = a + (b * c)/d; 

편집 : 나는 수식을 많이 그래서 그런데, 물리학을위한 계산기입니다. exp4j를 사용하여 문자열 수식을 구문으로 구문 분석합니다. 여기에 샘플이 있습니다

//For formula velocity = (finalVelocity - initialVelocity)/time 
String formula1 = "(finalVelocity - initialVelocity)/time"; 
Double result1 = new ExpressionBuilder(formula) 
        .variables("finalVelocity", "initialVelocity", "time") 
        .build() 
        .setVariable("finalVelocity", 4); 
        .setVariable("initialVelocity", 2); 
        .setVariable("time", 2) 
        .evaluate(); 
//Sample Output 
//velocity = (4 - 2)/2 
//velocity = 2 /2 
//velocity = 1 

//For formula finalVelocity = (velocity * time) + initialVelocity 
String formula2 = "(velocity * time) + initialVelocity"; 
Double result12 = new ExpressionBuilder(formula) 
        .variables("velocity", "time" "initialVelocity") 
        .build() 
        .setVariable("velocity", 4); 
        .setVariable("time", 2) 
        .setVariable("initialVelocity", 0) 
        .evaluate(); 
//Sample Output 
//finalVelocity = (4 * 2) + 0 
//finalVelocity = 8 + 0 
//finalVelocity = 8 

많은 수식으로 수식마다 인쇄 단계를 생략하려고합니다. 모든 수식에 대한 단계를 인쇄하는 함수를 갖는 방법을 찾으려고합니다.

int a = 5; 
int b = 6; 
int c = 7; 
int d = 8; 
int ans = (b * c); 
System.out.println(ans) 
ans /= d; 
System.out.println(ans) 
ans += a; 
System.out.println(ans) 

이 작업을 수행하려면 먼저 괄호를 검색하여 방정식을 해결하는 기능을 구축 할 수 있습니다 : 당신이 그 문제를 해결하기 위해 BODMAS을 사용하는 것입니다 고려

+0

구체적으로이 결과가 필요합니까, 아니면 산술 계산에 일반이되기를 원하십니까? – Brick

+0

모든 산술 계산 용 –

+0

샘플 입력 및 출력을 추가하십시오. –

답변

0

, 당신은 단순히 각 단계를 인쇄 고려할 수 BODMAS (대괄호 먼저, 다음으로 나누기, 곱하기, 더하기, 마지막으로 빼기)에 따라.
방정식을 문자열로 생각하면 먼저()을 검색 한 다음 /을 답하고 *, +- 다음에 대답을 인쇄하십시오.

+0

이것은 내 초기 솔루션입니다. 나는 현재이 하나를 시도하고 있지만 그것은 나를 위해 작동하지 않습니다. 어쨌든, 내 논리에는 뭔가 잘못된 것이있을 수 있습니다. 감사! –

+0

대단히 환영합니다! –

+0

내 질문에 대한 답변에서 OP가 일반 계산을위한 일반적인 해결책을 원했기 때문에 이것이 질문에 대답하지 않는 것 같습니다. 이를 위해서는 모든 계산에 대해 새로운 코드를 작성해야합니다. – Brick

관련 문제