2019年7月22日月曜日

電卓プログラムの根本的問題

=の計算での処理を考えていたところ、根本的問題として、数字キュー の初期値が0になっている点がありました。

数字キュー は、どのような状態にあっても0が表示されるとか、0のあとに0を入れさせないだとか、「.」をいれると「0.」とするとかの表示処理もあり、リセットしても0になります。

そのため、数字と演算子を入れて一旦リセットしても、リセットの事実は残ることはなく、「0」になってしまいます。

そのため、0+と、+のみとの区別がつかないという問題がありました。

もう0+を+のみと考えてもいいのですが、本当に0+としたいときに問題がでます。


一旦冷静になって考えましたが、

・数字の入力が少しでもあった場合のフラグ
  numInputting
・演算子の入力があった場合のフラグ
  calcInputting
・=があった場合のこれらのリセット

という形であれば、入力順での文法解釈などなしでいけるように思い始めました。
とりあえずその方向で実装していきましょう。

0 件のコメント: