2016-07-27 33 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

これは私の初期の解決策でした。私は現在この1つを試しているが、それは私のために働いていない。とにかく、私の論理には何か問題があるかもしれません。ありがとう! –

+0

あなたの大歓迎! –

+0

私の質問に答えてOPが一般的な計算の一般的な解決策を望んでいたので、これは質問に答えないようです。これには、計算ごとに新しいコードを書く必要があります... – Brick

関連する問題