2桁の乱数を5つ発生させて,それらを値に持つ配列を作成してから,値を順に表 示するプログラムを作成しましょう.
71 33 60 90 62 |
配列の作成にも for ループを使用します.乱数を5回発生させるので, 5回繰り返すループを作ります.そのとき,例えば配列の名前を ary とすると,ary[i] に乱数を代入することで,配列の作成が出来ます.
表示させるときも for 文を使用して下さい.
前問を改造して,逆順に表示する行を追加しましょう.
42 91 57 58 53 53 58 57 91 42 |
前問を改造して,50以上の数だけを表示する行を追加しましょう.
26 70 39 15 64 70 64 |
設問 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 |
循環させるためのポイントは剰余です.
前問をさらに改造して要素の個数を15個とし,表示順を,先頭の要素,最後の要素,2番目の要素,後ろから2番目の要素,,,中央の要素というように表示するプログラムを作成しましょう.
99 74 78 69 92 91 69 53 64 72 98 85 20 63 87 99 87 74 63 78 20 69 85 92 98 91 72 69 64 53 |
このプログラムでは if 文などの条件分岐は使用しません.また,全体で for 文は2つしか使用しません.一つは1行目の表示,もう一つが2行目の表示です.
0 14 1 13 2 12 …
という数列を作れば良いのですが,さて,どうしますか?いろんな数を足したり引いたり掛けたりしながら考えてみてください.
サイコロを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 文を使用しましょう.
前問を改造して,以下のように出現割合も表示するようにしましょう.サイロを振る回数 を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 |