1桁の正の整数を乱数を用いて10回発生させて表示するプログラムを while 文を用いて作成しましょう.
6 6 4 9 2 6 9 6 7 2 |
上のように1桁の乱数を発生させますが,発生した乱数の合計が100を超えたら終了するプログラムに変更しましょう.
4 3 7 2 7 3 8 9 3 2 5 5 8 4 5 8 1 4 1 4 3 3 7 Sum of above numbers: 106 |
100から20以上30以下の範囲の乱数を順に引いていき,答えが負になったら終了するプログラム を while 文で作成しましょう.
100 - 30 = 70 70 - 23 = 47 47 - 26 = 21 21 - 24 = -3 |
前問のプログラムを改造して,引いていく数は1から20の範囲の整数とし,最後はちょうど0になるまで終わらないようにするものを while 文で作成しましょう.
100 - 11 = 89 89 - 5 = 84 84 - 1 = 83 83 - 2 = 81 81 - 9 = 72 72 - 4 = 68 68 - 20 = 48 48 - 15 = 33 33 - 15 = 18 18 - 16 = 2 2 - 15 = -13 NG 2 - 20 = -18 NG 2 - 19 = -17 NG 2 - 7 = -5 NG 2 - 7 = -5 NG 2 - 14 = -12 NG 2 - 14 = -12 NG 2 - 6 = -4 NG 2 - 9 = -7 NG 2 - 13 = -11 NG 2 - 11 = -9 NG 2 - 1 = 1 1 - 16 = -15 NG 1 - 2 = -1 NG 1 - 12 = -11 NG 1 - 20 = -19 NG 1 - 18 = -17 NG 1 - 6 = -5 NG 1 - 19 = -18 NG 1 - 11 = -10 NG 1 - 6 = -5 NG 1 - 1 = 0 |
負になったら数を戻しておく操作がポイントです.解答例
3桁の整数を乱数を用いて発生させ,その数の素因数分解を行なうプログラムを while 文を用いて作成しましょう.
Decomposition of 960 into prime numbers 2 2 2 2 2 2 3 5 |
もちろん剰余算を使いますが,割り切れた時には除数は増えないのがポイントです.解答例
現在までに学習している知識で作成可能ではありますが,大変難しい課題を一つ出しておきます.興味ある人は挑戦してみてください.
サッカーにおける「ペナルティーマークからのキック戦」をシミュレートするプログラムを作成しましょう.先攻と後攻がありますが,勝敗が決した時点で途中でも終わるのがルールですし,5人まで蹴って同点の場合はそこからサドンデスに移るのもルールです.とりあえずゴール成功率を8割くらいにして作成してみましょう.
Liverpool FC - Sanfrecce HFC o - x o - o o - o o - o o The winner is Liverpool FC! |
Liverpool FC - Sanfrecce HFC o - o o - o x - o o - x o - o o - o x - o The winner is Sanfrecce HFC! | |
5人目までに決着した場合 | 6人目以降に入った場合 |
5回目までと6回目以降で処理を分ける必要があります.また,無限ループにしておいて break で抜ける処理を使用しています.解答例