情報科学概論
期末試験問題

2006.02.06

Back to index page



期末試験に関する注意事項をよく読んでおくこと!

Aクラス解答用紙
Bクラス解答用紙


  1. 初期値 a(0) が1,第1項が2,第 n 項が次式で表され る数列がある.このとき,第1000項の値および初項から第1000項までの総 和を求め,表示するスクリプトを作 成せよ.

    a(0) = 1
    a(1) = 2
            a(n-1) - a(n-2)
    a(n) = -----------------
                   2
    

    解答では途中経過を表示することは決してしないこと.必ず,結果だけを表示するスクリ プトとすること.


    解答例

    a = [1, 2]
    
    for i in 2..1000
      a[i] = (a[i-1] - a[i-2]) / 2.0
    end
    
    sum = 0
    
    for i in 0..1000
      sum += a[i]
    end
    
    printf "a(1000) = %e\nsum = %f\n", a[1000], sum
    


  2. 以下に示すような規則的な66個の数の並びを表示するスクリプトを作成せよ.なお,そのスクリ プトの中には if unless, case-when などの条件分岐は一切使用しないこと.また,繰り返しの実行回数 はもっとも内側のループで合計66回となるようにすること.

      0   0   0   1   1   1   2   2   2   3   3 
      1   1   1   2   2   2   3   3   3   4   4 
      2   2   2   3   3   3   4   4   4   5   5 
      0   0   0   1   1   1   2   2   2   3   3 
      1   1   1   2   2   2   3   3   3   4   4 
      2   2   2   3   3   3   4   4   4   5   5
    


    解答例

    for i in 3..8
      for j in 0..10
        printf "%3d ", i % 3 + j / 2 
      end
    
      printf "\n"
    end
    


  3. 10以下の正の整数の乱数を20回発生させる.その乱数一覧とそれらの積を以 下の例のように表示するスクリプトを作成せよ.

    乱数一覧:10  6  7  1  5  1  4  7  9  5  6  7  8 10  2  9  3  4  7  3 
          積:40327580160000
    


    解答例

    ary = []
    pro = 1
    
    printf "乱数一覧:"
    
    for i in 0..19
      ary[i] = rand(10) + 1
      pro *= ary[i]
      printf "%2d ", ary[i]
    end
    
    printf "\n      積:%d\n", pro
    


目次ページに戻る