[CoveredCalc] 符号反転キー

符号反転キーを実装しました。
一般的な電卓で「+/-」と表記されているキー(ボタン)です。

まず、このキーの挙動を決定します。

通常、数字の入力後にこのキーを押すと、数字にマイナスが付きます。逆に、マイナスの数字が表示されている状態でこのキーを押すとマイナスが消えます。
これはまあそういうものだともともと思っていました。

次に、演算子の直後にこのキーを押した場合、例えば[1][2][+]という順番で入力したあとにこのキーを押すとどうなるのがいいんでしょう?つまり、[1][2][+][+/-][=]と入力したときの振る舞いです。
Windows の電卓や家にあった電卓で試してみましたら、挙動がいろいろ違うので参考にするのをやめました。
CoveredCalc では、[+/-]を押すと、現在表示されているものの符号が反転し、それが入力になることにします。
この場合は、[1][2][+](この時点で「12.」と表示)[+/-] で表示は「-12.」。続く [=] で「12 + (-12)」が計算されて表示が「0.」

それから、[1][+][2][=][+/-]と入力した場合。[1][+][2][=](この時点で表示は「3.」)[+/-](これにより表示は「-3.」)
例えばこのあとさらに [+][5][=] などと入力すると「-3 + 5」が計算されて「2.」になります。

今度はこのキーの後に数字を入力した場合は?
[1][2][+/-][3]など。この場合は「-123」になります。つまり [+/-] は [+] や [-] などの演算子とは動作が異なるということですね。([1][2][+][3]なら画面表示は「3」ですからね)

とまあ、こんなことを調べながら電卓コアエンジンに対する実装を終えました。
続いて、UI モジュールでも [+/-] ボタンを追加しました。キーボードでは「N」を押すことで入力できます。あと、Windows 版に限り「Shift+(テンキーの)-」と「F9」もこのキーに対応づけました。「F9」は Windows 標準電卓に合わせました。
それから、カバー定義ファイルにも [+/-] ボタンの記述を追加しました。このおかげでカバー定義ファイルのバージョンが "1.0" から "1.1" になるのですが、まだカバー読み込み部分を修正してません。これ修正しないと、"1.1" がはじかれてしまいますね。
さらに残っている作業として、カバーの作り方ドキュメントの更新、Adamsカバーに[+/-]ボタンを追加、があります。
ここまでできれば、とりあえず、Version 1.2.0 として公開しちゃおうかと思ってます。
あ、ちなみに、まだ BeOS では全く動作を(というかコンパイルすら)確認してません(汗
[PR]
by hironytic | 2005-05-30 16:59 | 開発状況
<< [CoveredCalc] 1... [CoveredCalc] 引... >>