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

Back to text page


  1. 位取り

    5 から 8 の整数のどれかを乱数により発生させ,次にその桁数の正の整数を乱数により発生させます.その数の各位の数を抜き出して以下のように表示するプログラムを作成しましょう.

    Number of digits: 8
    
    3 6 8 6 3 7 0 9 --> 36863709
    

    前回の演習問題の v.でやったように数値を文字列化すると簡単にできます.出力を関数にするか,戻り値を出力するか,2つの解答例を用意しています.
    解答例1 画面出力を関数化

    解答例2 戻り値を取る関数形式

    解答例3 反復処理を用いる方法

  2. Maxプーリング関数版

    5月1日の演習問題の vi. のMaxプーリングの問題を関数を用いたものに変更しましょう.ただし,今回は6,8もしくは10のどれかの整数を乱数により発生させ,その数を行と列とする行列で行います.

    Size of matrix: 10
     25  47 158 243 105 232  98 179 190 109 
      4 159 200  71 196  94 196 153  40 204 
    172  88  83  36 148  93 122  80 253 129 
     88  71 183  34  68 215 188 232 129  59 
    191  63 209  94  46  56 249  74 195  66 
    181 247  36 131 203 206  29 241  81  95 
    149  72 159 228  16  97 167 121 134 255 
    141 185  29  49 114 163  80 108  67 212 
    193 235  45 128 180 249  89 157 102  69 
    150 165  74  38 218  66 133 165  79 248 
    
    159 243 232 196 204 
    172 183 215 232 253 
    247 209 206 249 195 
    185 228 163 167 255 
    235 128 249 165 248
    

    Maxプーリングを行ったリストを返す関数としてみましょう.
    解答例

  3. 成績ソートの関数版

    同じく5月8日の演習問題の i. の成績ソートを関数版にしてみましょう.今回は乱数でどの科目で並べ直すかを指定する形式とします.

    Number  Eng Math Phys Total
      S001   29   55   58   142
      S002   83   78   94   255
      S003   76   11   45   132
      S004    1   58   73   132
      S005   43   70   47   160
      S006   96   42   81   219
      S007   34   48   28   110
      S008   27   33   21    81
      S009   79   64   57   200
      S010   67   64   71   202
    
    Sort score by Math
    Number  Eng Math Phys Total
      S002   83   78   94   255
      S005   43   70   47   160
      S009   79   64   57   200
      S010   67   64   71   202
      S004    1   58   73   132
      S001   29   55   58   142
      S007   34   48   28   110
      S006   96   42   81   219
      S008   27   33   21    81
      S003   76   11   45   132
    

    学生番号のところにもちょっとした工夫が必要です.

    ラムダ関数を使用し,sorted 関数に key を与えることで並べ替える操作の関数を簡単に作れます.
    解答例

  4. filter関数

    0から9までの整数を乱数により20個発生させます.また別にターゲットとなる数として0から9の整数をどれか1つ発生させます.ターゲットの数が何個出たかを数えるプログラムをラムダ式と filter 関数を使用して作成しましょう.

    Numbers:  5 7 3 7 3 3 7 8 9 1 2 9 9 5 8 7 3 7 1 2
    Target number: 2
    Frequency: 2
    

    filter 関数でチェックしてできたリストの長さを見れば,何回でたかがわかります.
    解答例


Back to text page