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

Back to text page


基本的な知識だけでプログラムは組めるのですが,処理を実際に組み立てるのは相当考える必要があります.そのため,適宜フローチャートをお見せすることにします.

  1. 2次元リストの並べ替え
  2. 英語,数学,物理のテストの点数を乱数を用いて1から100の範囲の整数で発生させますが,それを10人分用意して表示します.次に,合計点の高い順に並べ替えて表示するプログラムを作成しましょう.

      No.   Eng  Math  Phys Total
        1     2    44    81   127
        2    41    50    12   103
        3    98    62    14   174
        4    35    98    16   149
        5    27    57    32   116
        6    74    99    37   210
        7    94    43    78   215
        8    59    44    42   145
        9    28    20    58   106
       10    75    40     1   116
    
      No.   Eng  Math  Phys Total
        7    94    43    78   215 
        6    74    99    37   210 
        3    98    62    14   174 
        4    35    98    16   149 
        8    59    44    42   145 
        1     2    44    81   127 
        5    27    57    32   116 
       10    75    40     1   116 
        9    28    20    58   106 
        2    41    50    12   103
    

    フローチャート

    解答例

  3. ピーマン袋詰め選別
  4. スーパーなどで袋詰めされたピーマンを見たことがあると思います.大体4個くらい入っているのが通常ですが,そこに詰められているピーマンの合計の重量はほとんど同じになっています.それを実現しているのは,いくつか機種によって違いはありますが,基本的には12個をランダムに取り出して,その中から合計が指定された重量になる4個を選び出して抜き取り袋詰めをし,空いたところにまたピーマンを入れてという作業を繰り返して,同じ重量の袋を次々に作っています.

    上記の操作をシミュレートするプログラムを作成してみましょう.40から60の整数を乱数により12個発生させ,その中の4個の合計が200になる組み合わせを選ぶことを行うプログラムを作りましょう.

    Weight of 12 green peppers: 44 43 43 51 55 47 45 56 56 43 57 46
    Selected: 44 43 56 57 --> 200g
    

    フローチャート

    解答例

  5. カプレカ数探索
  6. コミックの「はじめアルゴリズム」の第1巻で紹介されている「カプレカ数」の探索を行ってみましょう.4桁の正の整数を乱数により発生させ,その数に含まれる数字を大きい順に並べ替えたものと小さい順に並べ替えたものを作ります.そして,大きい数から小さい数を引いて,その答えの数も同様に大きい順と小さい順に並べ替えて引き算する,ということを繰り返すと,必ずある数に収束するというもので,その収束した数をカプレカ数と言います.

    Original number: 5182
    8521 - 1258 = 7263
    7632 - 2367 = 5265
    6552 - 2556 = 3996
    9963 - 3699 = 6264
    6642 - 2466 = 4176
       ・
       ・
       ・
       略
       ・
       ・
       
    Kaprekar number with 4 digits: ****
    

    手順はおよそ以下のようになります.
    1.4桁の乱数発生
    2.while()文開始(新しい数と一つ前の数が違うと真)
    3.一つ前の数を入れる変数に入れておく
    3.位取りによる数字の取り出しとリスト化
    4.リストの要素の並べ替え
    5.2個の4桁の整数合成
    6.引き算
    7.差を新しい4桁の数にする
    8.3.の作業に戻る

    そうとう難しいので,いろいろ考えてみてください.

    フローチャート

    解答例


Back to text page