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

Back to text page


実習課題

  1. while ループ基本

    1桁の正の整数を乱数を用いて10回発生させて表示するプログラムを while 文を用いて作成しましょう.

    6 6 4 9 2 6 9 6 7 2
    

  2. 基本その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
    
    

  3. 引き算

    100から20以上30以下の範囲の乱数を順に引いていき,答えが負になったら終了するプログラム を while 文で作成しましょう.

    100 - 30 =  70
     70 - 23 =  47
     47 - 26 =  21
     21 - 24 =  -3
    

  4. 前問のアレンジ

    前問のプログラムを改造して,引いていく数は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 
    

    負になったら数を戻しておく操作がポイントです.
    解答例

  5. 素因数分解

    3桁の整数を乱数を用いて発生させ,その数の素因数分解を行なうプログラムを while 文を用いて作成しましょう.

    Decomposition of 960 into prime numbers
    2 2 2 2 2 2 3 5
    

    もちろん剰余算を使いますが,割り切れた時には除数は増えないのがポイントです.
    解答例

  6. ペナルティーマークからのキック戦

    現在までに学習している知識で作成可能ではありますが,大変難しい課題を一つ出しておきます.興味ある人は挑戦してみてください.

    サッカーにおける「ペナルティーマークからのキック戦」をシミュレートするプログラムを作成しましょう.先攻と後攻がありますが,勝敗が決した時点で途中でも終わるのがルールですし,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 で抜ける処理を使用しています.
    解答例


Back to text page