さて計算キュー の改善に移りたいと思いますが、
これまでの検討結果から、
(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)
つまり、一つ前の入力ステータスを確認することで、
numInputting = true calInputting = trueの場合は通常
numInputting = false calInputting = trueの場合は結果演算
numInputting = false calInputting = falseの場合はオペランド演算
これまでの検討結果から、
(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=の前の入力ステータスを覚える必要があります。
この方針でメモリ演算をサポートしたいと思います。
ただ、3=自身で入力ステータスが変わってしまうので、
3=の前の入力ステータスを覚える必要があります。
この方針でメモリ演算をサポートしたいと思います。
0 件のコメント:
コメントを投稿