2019年7月22日月曜日

計算キュー の改善

さて計算キュー の改善に移りたいと思いますが、
これまでの検討結果から、

(1)通常演算では、

1+2=3
1+3=?
つまり「1+」「3=」

となりますので「3=」の前の入力ステータスは、
演算して結果が出た(numInputting = false calInputting = false)
のち、数値も演算子も入力されるため、
数値+(numInputting = true calInputting = true)となります。

(2)一方、結果に対する演算は、

1+2=3
「+」「3=」

となりますので、「3=」の前の入力ステータスは、
演算して結果が出た(numInputting = false calInputting = false)
ののちに、演算子しか操作されないため、
(numInputting = false calInputting = true)となります。

(3)オペランドメモリ演算の場合、
1+2=3
「3=」

となりますので、「3=」の前の入力ステータスは、
演算して結果が出た(numInputting = false calInputting = false)
のち、何も入力せずに演算要求(3=)がとなるので、
numInputting = false calInputting = falseとなります。

つまり、一つ前の入力ステータスを確認することで、
numInputting = true calInputting = trueの場合は通常
numInputting = false calInputting = trueの場合は結果演算
numInputting = false calInputting = falseの場合はオペランド演算

と切り分ければよいことがわかります。

ただ、3=自身で入力ステータスが変わってしまうので、
3=の前の入力ステータスを覚える必要があります。

この方針でメモリ演算をサポートしたいと思います。

0 件のコメント: