『情報科学入門 Rubyを使って学ぶ』の練習問題の解答例の他、授業スライドの練習問題の解答例や、プログラミングのポイント等を掲載します。他クラスの方の利用歓迎。改良・訂正箇所ありましたらご指摘ください。

2010/11/09

[教]練習問題(第二章)

練習2.1 (画像データの作成)
a) s=[[1,1,0,0,0,0,1,1],      1は白に、0は黒になる
    [1,0,1,1,1,1,0,1],
    [0,1,0,1,1,0,1,0],
    [0,1,1,1,1,1,1,0],
    [0,1,0,1,1,0,1,0],
    [0,1,1,0,0,1,1,0],
    [1,0,1,1,1,1,0,1],
    [1,1,0,0,0,0,1,1]]
  show(s)


b) w=[[0,1,1,1,1,1],
     [0,1,0,0,0,1],
         [0,1,0,1,0,1],
         [0,1,1,1,0,1],
         [0,0,0,0,0,1]]
   show(w)


練習2.2 (画像データの操作)
def image_average9(image,x,y)
  (image[y-1][x-1]+image[y][x-1]+image[y+1][x-1]+
     image[y-1][x]+image[y][x]+image[y+1][x]+
         image[y-1][x+1]+image[y][x+1]+image[y+1][x+1])/9.0
end
これをimage_average.rbに保存して、
load(“./image_average.rb”)
image_average9(s,4,3) 結果:0.75
image_average9(s,5,2) 結果:0.875


練習2.3 (配列)
a) def sum3(a,x)
      a[x-1]+a[x]+a[x+1]
   end

b) def array_average3(a,x)
      sum3(a,x)/3.0
    end


練習2.3 (国旗)
p=[[[0,0.6,0],[1,1,1],[1,0,0]],
     [[0,0.6,0],[1,1,1],[1,0,0]],
     [[0,0.6,0],[1,1,1],[1,0,0]]]
show(p)

q=[[[0,0.6,0],[1,1,1],[1,0.4,0]],
    [[0,0.6,0],[1,1,1],[1,0.4,0]],
  [[0,0.6,0],[1,1,1],[1,0.4,0]]]
show(q)

r=[[[1,0,0],[1,0,0],[1,0,0],[1,0,0]],
     [[1,1,1],[1,1,1],[1,1,1],[1,1,1]],
     [[0,0.2,0.6],[0,0.2,0.6],[0,0.2,0.6],[0,0.2,0.6]]]
show(r)

0 件のコメント:

コメントを投稿