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

2010/11/17

[基]数列を作る(第二章)

1次元数列を作る
試しに,a0=1,a1=2,a2=3,a3=4,a4=5という数列を作ってみましょう。
a = [1,2,3,4,5]
はい終わり。


以下簡単に
数列を参照する→ a
数列のある項を参照する→ a[2]↓ (これでa2を参照できる。3と表示されるはず)
数列のある項を書き換える→ a[2] = 10↓ (これでa2が10になる)


2次元数列(画像)を作る
Rubyでお絵描きをしてみましょう。まずはirbを終了して、isrbを起動します。
isrbの起動は、"isrb"と入力してReturnを押すだけ。
さて、isrbでは各項の要素を0〜1の数値にすることで、数列を黒〜白のモノトーン画像として出力することができます。
試しに作ってみましょうか。

b = [ [0,0,0],
         [1,1,1],
         [0,0,0] ]

数列の中に数列を突っ込んでるんですね。これで、二次元数列bが出来ました。
これを画像として出力してみましょう。isrb独自の関数showを使います。

show(b)

こうなりましたか?
これで0が黒になることがわかりましたね。
0.1や0.6なんかを要素にして画像出力してみましょう。グレーになりますよ。





二次元数列に対する操作は、ほとんど一次元数列と同じなのですが、二次元なので項数の表現が違います。
b[1][2]だったら、b数列の1行目の2列目の項、ということになります。(通常b2,1など横の座標→縦の座標と表現するものですが、Ruby上では逆です。)
そして注意してほしい点は、この行と列の数え方は、どちらも0から始まっているということ。つまり一番左上の項はb[0][0]になります。
そしてさきほどのb[1][2]は、真ん中の列の一番右の数字のことになります。

以下簡単に

数列を参照する→ b
数列のある項を参照する→ b[1][2]↓ (これでb2,1を参照できる。1と表示されるはず)
数列のある項を書き換える→ b[1][2] = 0.5↓ (これでb2,1が0.5になる)


3次元数列(カラー画像)を作る
さて、今度はカラー画像を作ってみましょう。
二次元数列で、0~1の数字を入れていたところに、さらにRGB数列を入れて、色を表現します。
RGB数列は以下の様になっています。
 [(Red値),(Green値),(Blue値)]
それぞれのカラー値は、0~1で表します。
主な色のRGB数列をのせます。
[1,0,0]…赤
[0,1,0]…緑
[0,0,1]…青
[1,1,0]…黄色
[0,1,1]…水色
[1,0,1]…紫
[0,0,0]…黒
[1,1,1]…白
少数を使って、自分の出したい色をうまく表現してみましょう!

では肝心のこのRGB数列の使い方を。
c = [ [ [1,0,0], [0.5,0.5,0], [0,1,0] ],
        [ [0.5,0,0.5], [0.5,0.5,0.5], [0,0.5,0] ],
        [ [0,0,1], [0,0,0.5], [0,0,0] ] ]
まあこんな感じで、数列の中に数列を突っ込んで、さらにRGB数列を突っ込むんですね。
これで3×3のカラー画像ができたので、
show(c)
で表示してみましょう。

以下簡単に
数列を参照する→ c
数列のある項を参照する→ c[1][2]↓ (これでc2,1を参照できる。[0,0.5,0]と表示されるはず)
数列のある項を書き換える→ c[1][2] = [0,1,1]↓ (これでc2,1が[0,1,1]になる)

以上でっす。

0 件のコメント:

コメントを投稿