http://www.sw.it.aoyama.ac.jp/2010/PB2/lecture10.html
© 2010 Martin J. Dürst 青山学院大学
12月 3日 (金曜日) 22:00 までに Moodle に classes.rb
のファイル名で投稿
今まで使ったできるだけ多くのクラスの名前を出力するプラグラムを作りなさい。
数では整数と実数、整数の場合に更に小さいものととても大きいものを使ってみなさい。
整数の二種類のクラスの「境界線」に一番近い数を使いなさい。
(例えば irb
で試しながら境界線に近づくように試してみてください。)
正解例: 都合により削除
Fixnum と BignumFixnumBignum2**30 (2**30 は最小の (正) の
Bignum)2**62 (2**62 は最小の (正) の
Bignum)true と false と
niltrue (真、正しい)false (偽、間違っている)nil
を使用true、false、nil
のクラスはそれぞれ
TrueClass、FalseClass、NilClass12月 3日 (金曜日) 22:00 までに Moodle に
famous_class.rb のファイル名で投稿
以前作った famous_def.rb (正解例でも可能) に
Person クラスを追加しなさい。
ヒント:
Person の配列として保管input_data_array → famous_people)Person
の初期化は一行の入力からやった方がいいdef initialize (line))正解例: 都合により削除
attr_reader :変数名attr_writer :変数名attr_accessor :変数名attr_... の詳細attr_reader :nameattr_writer :bmiattr_accessor :dangerattr_reader :name, :weight, :height@ の代わりに
: が必要attr_... は普通クラスの先頭に記述:name などは Symbol
であるが、この授業では細かく扱わないattr_reader などはメソッドを作るメソッドperson.weight /
person.height など繰り返される記述が多い@weight /
@heightdef bmi_simple (weight, height)
weight / height
end
bmi_simple(person.weight, person.height)
class Person
def bmi_simple
@weight / @height
end
end
person.bmi_simple
提出: 12月10日 (金曜日) 22:00 までに Moodle に
famous_accessors.rb のファイル名で投稿
以前作った famous_class.rb (正解例でも可能;
以前「発展問題」で行った danger を含む)
でアクセスメソッドを attr_...
に書き換えなさい。
ヒント: class Person 内の変更だけが必要
提出: 12月10日 (金曜日) 22:00 までに Moodle に
famous_methods.rb のファイル名で投稿
演習 1 のプログラムで bmi と danger の計算をメソッドに変更しなさい。更に、有名人一人分の出力となる一行の作成メソッドも作りなさい。
ヒント:
if bmi <= 18.5)bmi)
による同一の値の計算の無駄は気にしない様にattr_... は attr_reader
(インスタンス変数一つ) に減らされる