16進電卓を作ってみよう5
えてして、人間に分かりやすい(あるいは慣れている)方式は
プログラム化しようとすると面倒なものです。
毎度、当サイト管理人イガジーです。
演算処理のひとつに、「逆ポーランド」というのがありまして
普通の人にはあまり馴染みがないのですが、プログラムするには
やりやすい方式です。(興味がある方は検索してみてください)
それはともかく、電卓の演算処理を考えてみます。
1+2= という操作が行われたら、[+], [=] キー(ボタン)は
どういう処理をすればよいでしょうか?
同様に、4−1= という操作が行われたら、[-], [=] キーは?
1+ の[+]では、1(直前の入力数値)を覚えておき、
4− の[-]では、4を覚えておけば良いでしょうね。
では、[=]は?
直前の数値(2や1)と演算する、、、のですけれど、
その前に[+]が押されたのか、[-]が押されていたのか、を
覚えておく必要がありそうです。ちょっと面倒ですが。
そうしないと、足し算すりゃいいのか、引き算するのか、わからない。
という訳で、新たな変数として
int val1 … 最初の数字([+]や[-]が押される直前の数字)を格納しておく
と
int stat … 足し算か引き算かを覚えておく
を用意しましょう。
足し算キー(ボタン)では
val1=result; // resultは直前の数値
stat=1; // 1は足し算ということにする
result=0;
引き算キー(ボタン)では
val1=result; // resultは直前の数値
stat=2; // 2は引き算ということにする
result=0;
という処理をすればよさそうです。
では、[=]キー(ボタン)は?
if (stat==ADD) {
result=val1+result;
}else if (stat==SUB) {
result=val1-result;
}
stat=0; // 足し算でも引き算でもない
display();
で良い、か、な?
という訳でぜひともご自分で試してみてください。何事も経験だと思いますので。
16進電卓を作ってみよう1
16進電卓を作ってみよう2
16進電卓を作ってみよう3
16進電卓を作ってみよう4
16進電卓を作ってみよう5(this)
16進電卓を作ってみよう6
16進電卓を作ってみよう7
16進電卓を作ってみよう8
16進電卓を作ってみよう9
この記事へのコメントはこちら