情報科学演習 実習課題 2017.12.11

Back to text page


実習課題

  1. 配列の基本

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

    71 33 60 90 62
    

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

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

    前問を改造して,逆順に表示する行を追加しましょう.

    42 91 57 58 53
    53 58 57 91 42
    

  3. 配列の基本3

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

    26 70 39 15 64
       70       64
    

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

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

    97 38 59 42 71 57 72 94 10 56
    
    Shift array by 4 elements
    72 94 10 56 97 38 59 42 71 57
    

    循環させるためのポイントは剰余です.2つめの表示では,配列の要素の添字が6789012345と順に変わっています.

    01234567891011121314151617181920
    678901234567890123456


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

    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)を格納する配列を用意して,配列の要素の和もしくは積で判断します.
    解答例

  6. サイコロの目の出現頻度

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

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

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

        dice[7] = {0, 0, 0, 0, 0, 0, 0};
    


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

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

    前問を改造して,以下のように出現割合も表示するようにしましょう.サイロを振る回数 を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