文系初心者、C++備忘録。

営業からプログラマへの華麗なるジョブチェンジ

【c++入門】設計図の書き方、疑似コード

c++は現実世界をシュミレートできる言語だ。

実際に猫をシュミレーションしたのが前回のクラスのお話。

nipa.hatenablog.jp

この例では猫の設計図をもとに、名前を持たせたり、動作を与えたり出来た。

で、今日は設計図を実際に書いていく際の手順を備忘録として残こうかと。

 

まず、変数と関数を日本語で考えてみる。

いきなり引数とかなんとかをゴリゴリ書いていくから訳がわからないので、入れ物とか動作とかを簡単な例で書いていくのがいいんじゃない?という考えたかだ。

 

例)ロケットを飛ばす世界をシュミレーションのラフ案を書く。
  1. クラス→Rocket
  2. 変数→燃料、スピード、高度
  3. 関数→加速、状況報告

こんな感じでやってみる。

 

ラフ案を元に、宣言だけをちょっとだけ書いてみる。

class Rocket{

    int f;    //燃料

    int v;  //速度

    int h;  //高度

}

public:

    Rocket(......){....}  //コンストラクタ

    void accel (....){....}  //アクセル関数

    void Report(....){....}  //レポート関数

};

 

次に、変数とか関数について考えてみる

まずコンストラクタから。

発射直前では、速度や高度はゼロで良さそう?

燃料はわかりやすく100にしておこう。

Rocket( ){

    int f = 100;    //燃料

    int v = 0;  //速度

    int h = 0;  //高度

}

 

次はaccel関数の中身。

    void accel (int b){....}  //アクセル関数

    f -= b;  //アクセルを踏むと、燃料が1減る

    v += b;  //アクセルを踏むと、速度が1上がる

    h += v;  //速度が上がると、高度も1上がる

まとめると、

    void accel (int b){

    f -= b;  //アクセルを踏むと、燃料が1減る

    v += b;  //アクセルを踏むと、速度が1上がる

    h += v;  //速度が上がると、高度も1上がる

    } 

 

次は状況報告

    void Report(....){....}  //レポート関数

レポートは値が変わらないのでconstをつけておこう。

あとはcoutで各値を吐き出すだけ。

    void Report( )const{   //レポート関数

        cout << "燃料は:"  << f << endl;

        cout << "速度は:" << v << endl;

        cout << "高度は:" << h << endl;

    }  

 

最後に仕上げ。

 実行結果:

さあ、いよいよロケットが完成しました。

操作するのはあなたです。

毎回、加速量を決めてください。

加速のチャンスは3回だけです。

状況報告

燃料:100

速度:0

高度:0

 

加速量を入力:56

状況報告

燃料:44

速度:56

高度:56

 

加速量を入力:7

状況報告

燃料:37

速度:63

高度:119

 

加速量を入力:37

状況報告

燃料:0

速度:100

高度:219

 まとめ

ちなみに、関数の実装部分では、f = aのことをf(a)と書くことができる。

これはまた次回以降に書くことにしよっ。