next up previous contents
Next: 6. 制御構造と論理演算 Up: 5. 入力の読み込みと制御構造 Previous: 5.3 効率のよいプログラム開発

5.4 課題5

cd c を実行した後で( ~/c に移動した後で)、以下の課題を やってみよ。

課題 5.1
入力が間違っていた場合

本文の例4をプログラムとして完成させ、kadai5_1 という実行ファイル名 で、色々入力を変えて実行してみよ。特に、誤った入力をした場合、 期待したとおり、入力が誤っているというメッセージが出ることを確認 せよ。

課題 5.2
商と余りを表示するコマンドを作る

課題 3.5 を用いて、キーボードから2数を読み込み、割算の式を表示 するプログラムを作成せよ。 (課題3の参考問題も参考にせよ。) 実行プログラム名は、kadai5_2 とせよ。

課題 5.3
クイズ

選択が4つ以上あるクイズを考え、答えの番号を入力させるプログラムを 作成せよ。また、正しければ正解である事を表示して終了し、 間違っていれば誤答である事を表示し、正解が入力されるまで終了しない事。

問題 C(C++) 言語では、真であるというのは次のどの数であらわされるか? 次の4つの中から正解と思われるものを選び、その番号を入力せよ。

(1)
2
(2)
0
(3)
1
(4)
-1

課題 5.4
親切なプログラム

課題 4.5 を改造し、最初に購入したい車の値段、1ヶ月の返済金額の上限、 年利(年利は%で入力するものとする)をキーボードから 入力するようにせよ。値段、返済金額、年利に間違って文字等を入力 した場合に、正しい数値が入力されるまで繰り返し再入力をうながすプ ログラムにせよ(例6を参考にせよ)。 実行プログラム名は、carloan とすること。

[参考] 入力された年利(%)が nenri という変数に入っていて、 車の値段が car という変数に入っている場合、1年の金利がついた後の車の値段は 次のようにして求める事が出来る。

car = car * (1 + nenri/100.0);

 

作成したプログラムをメイルで、creport まで送ること。但し、題は kadai05 と すること。

前回の復習
  1. 整数変数の標準入力からの読み込み
    標準入力(ユーザーがリダイレクトしなければ、キーボード)からの読み込み には、cin >> を用い、その書式は次の通りである。

    書式   cin >> 整数変数

            例
                    int a;
                    cin >> a;
    
    例では、整数変数 a に標準入力から一個の整数を読み込む。

  2. cin >> のエラー処理
    cin>> は、期待した形式(上の場合は整数)以外 のものが入力された場合、 0 を返す(ifやforの判断の中で使う場合)。
                    int a;
                    if (cin >> a){
                            cout << "Error!" << endl;
                    }else{
                            cout << "正常入力" << endl;
                    }
    

  3. cin >> での読みとりエラーと標準入力
    cin >> は入力エラーの場合は、標準入力にそのデータを返却する。 入力にデータを返すというと奇異に感じるが、実は、入力データは 一旦システムのある場所に貯められているので、その貯蔵庫に返却 するという意味である。従って、一旦入力エラーとなったデータを 捨てないと次のデータを読むことは出来ない。 そのために、cin.clear()cin.ignore() を用いる。

  4. 実行プログラムの名前を付ける
    a.out 以外の名前を実行プログラムにつけるには、コンパイル時に以下の ようにすれば良い。
                    $ g++   -o    実行ファイル名  ソースファイル名
            例
                    $ g++  -o  test  test.cpp
    



Noriyo Kanayama