Javaで電卓を作っています。
https://ideone.com/mquzPm
10+20=30、12-2=10、2*10=20、6/3=2など、1回の計算はできるのですが、連続した計算をすると、2+3*6=18のようになってしまいます。
連続した計算をするにはどこをどのように変えれば良いでしょうか。
A 回答 (3件)
- 最新から表示
- 回答順に表示
No.3
- 回答日時:
№1さんと№2さんが回答してますので概ねそれでいいと思います。
問題は、2+3*6=いくつにしたいかです。
電卓では、30になりますよね。
これは(2+3)*6だからです。
一方、算数的には、掛け算優先ですから20が正しいです。
よって、式全体が入力し終わらないと優先順序が決まらないという問題があります。
なかなか手ごわいですね。
頑張ってください。
No.2
- 回答日時:
関数電卓ではなく、通常電卓のように演算順の考慮が必要ないのなら、
ボタン "+ - * /" の処理前に
すでに op が存在するなら
ボタン "=" と同じ処理をしましょう
No.1
- 回答日時:
① イコールが押されるまで、ひたすら文字列を記録する。
② 記録した文字列のうち、()があるか無いか。あるなら()が幾つあるかを判定して、優先して計算すべき部分を判断する。
③ 優先して判断すべき部分の中から、演算子を識別して、優先して計算すべき部分を先に計算する。
④ 計算結果を置換して新たな数式とする。
⑤ この①から④を、文字が無くなって単一の数字になるまで繰り返し計算する。
このうち②の部分は難しいかもしれないから後で実装したら良い。
例
① 2 + 3 * 6 / 2 - 2 * 1
② で()無し
③ で掛け算記号あり ⇒ 優先計算
④ 掛け算記号の前後の数字は 3 と 6。掛け算をして 18
2週目
① 2 + 18 / 2 - 2 * 1
② で()無し
③ で割り算記号あり ⇒ 優先計算
④ 2 + 9 - 2 * 1
3週目
① 2 + 9 - 2 * 1
④ 2 + 9 - 2
4週目
① 2 + 9 - 2
④ 11 - 2
5週目
① 11 - 2
② 9
6週目
ループ終了
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- 数学 ピラミッド計算の仕方を教えて下さい。 5 2023/01/03 16:04
- 計算機科学 電卓で一度に計算するやり方 9 2022/06/11 14:06
- 仕事術・業務効率化 給料計算はシステムを使用してればて計算は不用ですか? 時間の計算を電卓を使用して計算する必要あります 2 2023/04/05 14:34
- 数学 冪乗の計算について教えてください 5 2023/04/22 22:36
- 時計・電卓・電子辞書 電卓は、何年使用してますか?携帯、スマホは、除く 5 2022/08/30 11:22
- 計算機科学 この計算合っていますか? 1 2022/07/28 06:27
- 時計・電卓・電子辞書 電卓 2 2023/04/20 21:44
- 夫婦 昨日旦那と口論になり、旦那にいつも使っていた電卓を壊されてしまいました。旦那はむずかしい計算をしない 5 2023/02/05 21:09
- 転職 給料計算の経験がありません。 どのような順番でどのような工程をふんで進めていきますか? システムを使 2 2023/04/05 17:54
- 時計・電卓・電子辞書 電卓 4 2022/04/29 06:26
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
C言語のプログラミングの問題で...
-
65536は2の何乗なのでしょうか?
-
タクシー料金の問題です
-
バッチファイルでウインドウを...
-
骨折リスク評価のFRAXについて...
-
prolog計算
-
EXCELなどで「返す」という表現
-
三菱シーケンサー works2 の日...
-
Excel VBA TREND関数について
-
VBAで電卓を作成する
-
VBA 九九 Do While
-
モジュラス103の計算とは何でし...
-
電卓でmodの計算
-
C言語で、べき乗の計算方法につ...
-
[ASP]日付と時間の比較
-
ステップ数と計算量?
-
PHPとJavaでSHA256の結果を同じ...
-
スレッド処理からダイアログを...
-
移動平均を計算するプログラム
-
数十万番目の素数を表示させる...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
65536は2の何乗なのでしょうか?
-
VBAの再計算が反映されない件に...
-
排他的論理和 BCC(水平パリテ...
-
EXCELなどで「返す」という表現
-
バッチファイルでウインドウを...
-
モジュラス103の計算とは何でし...
-
傾いた四角形内の範囲の条件式
-
Visual C++でdebugとreleaseで...
-
変化させるセルが変化しない
-
骨折リスク評価のFRAXについて...
-
C# 計算処理中に実行中ウィン...
-
VBAでの勤務時間計算
-
べき乗の計算が遅い理由
-
C言語についてです。 再帰を使...
-
Excel VBAにてFFT
-
数値計算の高速化 (cos, sin, exp)
-
VBとVBAの違い
-
VB6で正確なミリ秒を計測したい...
-
スレッド処理からダイアログを...
-
matlabで計算終了
おすすめ情報