def plus(x,y) x-y x+y endのように定義すると,x-yの結果は捨てられてx+yを返す関数になる.
def make2d(h,w) c=Array.new(h) for i in 0..(h-1) c[i]=make1d(w) end endでは,3行目から5行目のfor文が最後の式になるが,この式の値は返したいcとは 異なる.
def make2d(h,w) c=Array.new(h) for i in 0..(h-1) c[i]=make1d(w) end c endのようにすべき.なお,講義では扱わないが,関数のどこからでも値を返すreturn文というものもあり,そちらを使って
def make2d(h,w) c=Array.new(h) for i in 0..(h-1) c[i]=make1d(w) end return c endと書いても良い.
のようにshowで表示した時のピクセルの行,列に対応するように統一している.
def make2d(h,w) load "./make1d.rb" c=Array.new(h) for i in 0..(h-1) c[i]=make1d(w) end c endこれでも問題なく動きはするが,make2dの計算をするたびにファイル"make1d.rb"の ロードをし直すので少々効率が悪い.
load "./make1d.rb" def make2d(h,w) c=Array.new(h) for i in 0..(h-1) c[i]=make1d(w) end c endのように書くと,このファイル(例えば,"make2d.rb")をロードする時に1回だけ"make1d.rb"をロードするので,こちらの方が良い.
ruby vote.rb 選択肢番号のように使う.
p.43, 練習3.10(b) 誤 き sum3(a,3)は 3 と 4 の平均である 3.5 と答える。 正 き sum(a,3)は 3 と 4 の和である 7 と答える。