プログラミング入門II 演習課題 2019.06.03

Back to text page


演習課題

  1. 配列の基本

    2桁の乱数を5つ発生させて,それらを値に持つ配列を作成してから,値を順に表 示するプログラムを作成しましょう.

    71 33 60 90 62
    

    配列の作成にも for ループを使用します.乱数を5回発生させるので, 5回繰り返すループを作ります.そのとき,例えば配列の名前を ary とすると,ary[i] に乱数を代入することで,配列の作成が出来ます.

    表示させるときも for 文を使用して下さい.
  2. 配列の基本2

    前問を改造して,50以上の数だけを表示する行を追加しましょう.

    26 70 39 15 64
       70       64
    

    if 文を使用します.
  3. 要素の循環

    設問 i をさらに改造して,発生させる乱数の個数を10個とし,最後の 行は要素をずらして表示します.ずらす量は,やはり乱数により決めるものとし, 3から7の範囲の乱数を発生させてずらすようにしましょう.

    54 30 63 27 95 38 59 33 89 27 
    
    Shift array by 3 elements
    63 27 95 38 59 33 89 27 54 30 
    

    循環させるためのポイントは剰余です.2つめの表示では,配列の要素の添字が 2 3 4 5 6 7 8 9 0 1と順に変わっています.

    01234567891011121314151617181920
    234567890123456789012


    上のようにある範囲の数を循環させることは,プログラミング入門Iで剰余が最初に出てきた時に説明しましたね.
  4. フラグとカウンタ

    0から9までの1桁の整数を乱数により繰り返し発生させ,全ての数が1度以上出現すると終わるプログラムを作成しましょう.

    1 8 4 6 8 3 9 4 0 6 2 8 4 1 8 9 5 3 6 5 3 5 1 9 4 8 0 7 
    

    このプログラムでは if 文を使用しません.数が出たか出ていないかを判断するフラグ(例えば,出たら1,出てなかったら0)を格納する配列を用意して,配列の要素の和もしくは積で判断します.
  5. サイコロの目の出現頻度

    サイコロを100回振ることをシミュレートします.以下のように出現頻度を数えて 表示するプログラムを配列を用いて作成しましょう.

      1  2  3  4  5  6
     11 20 15 20 16 18
    

    サイコロの目の出現回数を入れておく配列 dice を用意しておいて, 目に従って,dice[1] から dice[6] を1ずつ増やしていくこ とで,出現頻度の格納された配列が作成できます.ただし,配列は初期化してお かないといけないので,以下に示す初期化を行っておいてください.

    	for(i=0; i<=6; i++)
    	{
    		dice[i] = 0;
    	}
    


    なお,上の例で要素が7つ分用意されているのは,配列の要素の添字は0から始まるので,サイコロの目と合わせるために0番目を捨てているためです.べつに要素は6個でも作成できますし,そっちの方が本来のプログラムです.

    また,このプログラムの特徴は if 文を使用しないことです.それと, 表示作業にも for 文を使用しましょう.
  6. サイコロの目の出現割合

    前問を改造して,以下のように出現割合も表示するようにしましょう.サイロを振る回数 を10000回に増やすとどうなるかも確認しましょう.

        1     2     3     4     5     6
     1698  1647  1679  1666  1692  1618
    0.170 0.165 0.168 0.167 0.169 0.162
    

    浮動小数点数の扱いを思い出してください.

Back to text page