C++で電卓を作った。(How toではなく、ご紹介です。)
僕の師匠に<計算機を実装せよ>との課題を頂いたので、実際に今の全力で作って見ました。
今回はそれを紹介します。
師匠の課題の詳細は、こちら。
計算機を実装せよ。
仕様は、
3桁まで扱えるようにすること。
四則演算ができること。
四則演算に加え、 +α の機能を実装すること。
この3つが仕様として出されますた。
では、それにそって、コードを組んでいく。(言いたいだけ)
まず、壁として立ちふさがったのが、3桁の数字の認識と弾き返し。
とはいったものの、そんなに難しいわけでもなく、新しい文法事項を1つ覚えれば済んだ。
if ( 条件A && 条件B ) {
文
}
そう、条件を && でつなぐことで、追加できるらしい。
&& は、条件A:TRUE かつ 条件B:TRUE のときTRUE
逆に、条件A:TRUE かつ 条件B:FELSE のときFELSEになります。
これで、
if ( num >= -999 && num <= 990 ) {
文
}
な感じで、行けました。
-999 ≦ num ≦ 999 に条件を設定し、for文に入れることで、3桁以内なら他の変数に代入、3桁を超えて居たら再入力させることで、3桁問題を解決しました。良かった。
で、プラス α の機能なんですが、今回は累乗することにしました。
a^n ( a の n 乗 ) をする。
ここでも問題が発生して、どうやって何度も同じ数を掛けるかです。for を使うってのはわかってたんだけど、 n の部分を同処理するか、ということです。
考え抜いた結果(そこまで考えてない)、
int num, num1, num2, power;
num1 = num; ( num には、何か数字が入ってるものとする。 )
num2 = num; ( num には、何か数字が入ってるものとする。 )
power = num1;
for ( int i = num2; num2 > 0; i -= 1 ) {
power *= num1;
}
こんな感じで、行きました。
これで、課題の中の2つの主要な問題点が解決されました。
それで、今回学んだのは、if for の使い方や、ここには書きませんでしたが、フローチャートを使っての情報の整理で、この2つができるようになりました。フローチャートはかならず書くべきですね。紙媒体ってのも功を奏してるかも。今回は、ここまで、。
なんか中途半端な感じがものすごくて、申し訳ない感があるけど、こんなもんでしょ。紹介であって、How to じゃないって宣言してあるしね。(言い訳)おつかれ様でした。
気が向いたら、完全なコードをのせますね。
広告をワンクリックお願いします。
0コメント