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コメント

  • 1000 / 1000

idealHub

本ブログで紹介するもの。 Blenderでの3Dモデリング Swiftでのアプリ開発 現時点では、その2つが主になります。 また、私の趣味についても投稿予定です。