第2章の練習,投票
どれが正しいか?
xの値が7、yの値が5、zの値が3であるとして
- x < y
- x <= y
- x < y && y != z
- x <= y || y == z
- !(y == z)
練習
- 2 次方程式ax2 + bx + c = 0 の解の個数を求めるsolutions(a,b,c). 判別式の値だけでなく、1 次方程式になっている場合にも対応せよ。
- 3 つの異なる値x, y, z が与えられたときの中央値を求めるmedian(x,y,z). 中央値とは大きさ順に並べたときに真ん中に来る値のことである。
次の結果は何?
irb(main):001:0> a = [3,1,4,1,5,9]
=> [3, 1, 4, 1, 5, 9]
irb(main):002:0> a.length
- nil
- 1
- 6
- 9
- [3, 1, 4, 1, 5, 9]
次の結果は何?
irb(main):003:0> a[0] = a[4]
=> 5
irb(main):004:0> a[0]+a[2]
- nil
- 1
- 6
- 9
- [3, 1, 4, 1, 5, 9]
練習
次のようなデータを作成し、画像として表示させよ。
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]]
練習
カラー画像表現を使ってドイツの国旗を描いてみよ。
- 本当の色ではなく似た色を使って黒(R,G,B)=(0,0,0), 赤(1,0,0), 黄色(1,1,0)で良い
- 縦横比は 3:5
練習
画像データの座標(x, y) の点と、その周囲の点の明度の平均値を計算する関数image_average(image,x,y) を作れ。周囲の点とは指定された点の上下左右 8 点のうち、画像の範囲内の点だとする。例えば座標 (0, 0) の周囲の点は、(0, 1), (1, 1), (1, 0) の3 点になる。
練習
- 配列中の2 つの要素を入れ替える関数swap(a,i,j) を作れ。
- 配列 a の i 番目と i+1 番目の数値の大きさを比べ、前者が後者より大きいときに両者を入れ替える関数 swap_ascending(a,i) を作れ。
- a のx 番目の値と、その前後の値の平均値を求める array_average(a,x)を作れ。ただし前後の値とは、a の (x − 1) 番目と (x + 1) 番目の値のうち、a の範囲内のものだとする。例えば a が [1,2,3] のとき array_average(a,0) は 1.5, array_average(a,1) は2.0, array_average(a,2)は2.5 になる。