next up previous contents
Next: 10 配列とハッシュ Up: algorism_out Previous: 8 ファイルの入出力

Subsections



9 メソッド定義

9.1 メソッド定義の形式

メソッド定義の形式は、以下のような形なっている。
def メソッド名
   プログラム本体
end
メソッド名には引数を指定できる。 例えば、$x^2 + 3x - 5$を計算するメソッドを定義してみよう。
def f(x)
  return  x * x + 3 * x -5
end
print f(3), "\n"
print f(0), "\n"
print f(3) + f(0), "\n"
引数は、いくつでも定義できる。 ``return''は返り血を示す。 ``return''が無い場合は、最後の計算結果が返り値になるので、この例では ``return''が無くてもよい。


9.2 メソッド定義の実例(1)

例えば、円周を求めるメソッドは、
def enshu(r)
   k = 2 * 3.1415 * r
  return k
end
print enshu(3), "\n"
print enshu(6), "\n"

上記に、円の面積を求めるプログラムも加えてみよう。

def enshu(r)
   k = 2 * 3.1415 * r
   return k
end

def menseki(r)
   p =  3.1415 * r * r
   return p
end

print  "円周は、", enshu(3), "\n"
print  "面積は、", menseki(10), "\n"

9.2.1 練習問題

上記のプログラムに、球の体積 $=\frac{4}{3} \pi r^3$を求めるメソッドを付 け加え、てきとうな値を代入に体積を求めてみよ。

9.3 メソッド定義の実例(2)

1からnまでの和を求めるメソッドはどのように定義するか?
1から10までの和を求めるプログラムは、
p = 0
  for k in 1..10 do
    p = p + k
  end
print p, "\n"
であった。kの範囲を n までに改めて、"def" で定義すると、


def wa(n)
p = 0
  for k in 1..n do
    p = p + k
  end
  return p
end
print wa(10), "\n"
print wa(100), "\n"
などとなる。 最後の p の値が返り値になる。

9.3.1 練習問題

以下のプログラムは、5の階乗を求めるプログラムである。 これをメソッド定義に変え、 n の階乗を求めるように変えよ。 実際に、5の階乗、10の階乗などを求めてみよ。
参考プログラム
p = 1
  for k in 1..5 do
    p = p * k
  end
print p, "\n"




平成22年12月28日