プログラミング入門I 実習課題 2021.10.18

Back to text page


解答例を参照可能にしました.(2021年10月20日18:00)

  1. 乱数の練習基本

    2桁の正の整数のどれか一つを乱数を利用して発生させて表示させましょう.2桁の整数とは10から 99までですので,全部で何種類あるか考えてから準備してください.以下のよう に結果を表示することにしましょう.

    Obtained random number: 22
    

    表示させるための命令の部分は以下に示すように一度乱数の値を変数に入れてからにしてみましょう.

    
    	printf("Obtained random number: %d\n", num);
    


    二桁の整数を得るもう一つの考え方として,必要な数の最小値と最大値から考えることもできます.二桁の整数の最小のものは10ですが,剰余は割り切れる場合0になる可能性がありますので,

    	rand() % 何かの数 + 10;
    


    のように最後に10を加える必要があります.また,そうすると,二桁の整数の最大のものは99ですので,10を引いて89まで乱数として出てくるようにしないといけません.余りの最大値が89ということはどんな数で割ればよいでしょうか? これは簡単ですね.
    解答例

  2. 前問の拡張

    3桁の正の整数,そして4桁の正の整数をそれぞれ一つずつ乱数を利用してランダムに表示させるプログラムを作成しましょう.

    解答例

  3. 文字

    アルファベットの文字コードは,65~90が大文字のA~Zに,97から122が小文字のa~zに対応しています.大文字のアルファベットをどれか1つと,小文字のアルファベットどれか1つを,乱数を用いて以下のように表示するプログラムを作成しましょう.

    Upper case letter: V
    Lower case letter: q
    

    数値を %c を使って出力すると,その数値に対応する文字が表示されます.文字はコンピュータ内部では文字コードという数値で表現されているので,そのような動作になります.
    解答例

  4. 大文字か小文字か?

    大文字もしくは小文字のアルファベットを1文字乱数を用いて以下のように表示するプログラムを作成しましょう.

    Randomly chosen letter: B
    

    なかなか思いつかない発想だと思います.どう考えれば良いのか,悩んでください:-P)

    解答例

  5. 正負の数

    -10から10までの範囲の整数をどれか一つ乱数により発生させてください.

    Random number between -10 and 10: -2
    

    解答例

  6. だんだん大きくなる乱数

    3桁の正の整数を1つ乱数により発生させます.次に,その数よりも大きい3桁の整数をまた乱数により発生させてください.さらに,2番目の数よりも大きな乱数をもう1回発生させるプログラムを作成しましょう.

    1st random number: 530
    2nd random number: 996
    3rd random number: 998
    

    発生させる乱数の設定がかなり難しいですが,よく考えてください.ただし,2回目までに999が出てしまうと動作がおかしくなると思いますが,滅多に無いことなのでそれは諦めてください.現段階までで習った情報ではそれは回避できません.
    解答例

  7. 実数の乱数生成

    乱数を発生させる関数 rand() は整数しか取り扱えません.そこで,実数の乱数を用意するためには,得られた整数を加工する必要があります.-1から1の範囲で少数第2位までの実数を乱数で発生させる方法を考えてみましょう.

    Obtained random number: -0.49
    

    まずは乱数により整数を用意して,それを小数に変換するという手順になります.キャスト演算子を使うと簡単です.
    解答例


Back to text page