メソッドの利用例

もう少し複雑なメソッドを定義してみよう。

消費税計算

金額を渡すと消費税を計算するメソッドを作成してみよう。 税率として「10%固定」というのでは安物電卓と変わらなくて悔しいので 税率も選べるようにしよう。

tax-1.rb

#!/usr/koeki/bin/ruby
# coding: utf-8

def tax(price, ratio)   # priceに値段、ratioに税率 をもらう
  charge = price*ratio
  charge.to_i
end

ここで定義したtaxメソッドを 参照するときは、第1引数に金額、第2引数に税率を指定する。

tax(250, 1.10)

これでtaxメソッドで price=250, ratio=1.10 となり、税率10%で計算した結果を返してくれる。

メソッドに配列を渡す例

配列をメソッドに渡すこともできる。次のメソッドは、 数値が複数入っている配列を受け取り、それらの値の平均値を求めるものである。

def average(score)	# scoreは数値のたくさん入っている配列
  sum = 0.0		# 割り算する予定なので浮動小数点数にしておく
  for x in score
    sum += x
  end
  sum/score.length
end

これを利用して、入力した数値全ての平均値を出力するプログラム を作ると以下のようになる。

average.rb

#!/usr/koeki/bin/ruby
# coding: utf-8

def average(score)	# scoreは数値のたくさん入っている配列
  sum = 0.0		# 割り算する予定なので浮動小数点数にしておく
  for x in score
    sum += x
  end
  sum/score.length
end

points=[]		# からっぽの配列を作る
i=0			# iがpointsの添字となる
while true
  STDERR.print "数値を入力して下さい: "
  line=gets
  if line == nil
    break
  end
  points[i] = line.chomp!.to_f
  i += 1
end

printf("\n平均値は %6.2f です\n", average(points))

実際に実行してみよう。データの入力の最後には[C-d]を タイプする。

% ./average.rb
数値を入力して下さい: 1
数値を入力して下さい: 2
数値を入力して下さい: 3
数値を入力して下さい: 4
数値を入力して下さい: [C-d]
平均値は   2.50 です

本日の目次