開発環境
- OS X Lion - Apple(OS)
- BBEdit - Bare Bones Software, Inc.(Text Editor)
- プログラミング言語: Ruby
『初めてのプログラミング 第2版』(Chris Pine 著、長尾 高弘 訳、オライリー・ジャパン、2010年、ISBN978-4-87311-469-9)の 13章(新しいクラスの作成と既存クラスの変更), 13.6(練習問題)オレンジの木 を解いてみる。
その他参考書籍
- 『プログラミング言語 Ruby』David Flanagan, まつもと ゆきひろ 著 、卜部 昌平 監訳、長尾 高弘 訳、オライリー・ジャパン、2009年、ISBN978-4-87311-394-4)
- Rubyクックブック ―エキスパートのための応用レシピ集
オレンジの木
コード(BBEdit)
sample.rb
#!/usr/bin/env ruby1.9 #-*- coding: utf-8 -*- class OrangeTree def initialize @height = 0 @age = 0 @orange_count = 0 @alive = true puts "オレンジの木を植えました。" end def height if @alive return @height else return "木は枯れています。" end end def one_year_passes if @alive @orange_count = 0 @age += 1 if @age <= 5 @height += 2 if @age >= 2 @orange_count = 2 * @age end else @height = nil @age = nil @orange_count = 0 @alive = false end end end def count_the_orange return @orange_count end def pick_an_orange if @alive return "まだ実がなるほど成長していません。" if @age < 2 if @orange_count > 0 @orange_count -= 1 return "おいしいオレンジの実が採れました。" end return "もう採れる実がありません。" end return "木は枯れています。" end end ot = OrangeTree.new 1.upto(6) do |i| puts "#{i}年経過" ot.one_year_passes puts "木の高さ: #{ot.height}" puts "オレンジの実の数: #{ot.count_the_orange}個" (1 + ot.count_the_orange).times do puts ot.pick_an_orange end end
入出力結果(Terminal)
$ ./sample.rb オレンジの木を植えました。 1年経過 木の高さ: 2 オレンジの実の数: 0個 まだ実がなるほど成長していません。 2年経過 木の高さ: 4 オレンジの実の数: 4個 おいしいオレンジの実が採れました。 おいしいオレンジの実が採れました。 おいしいオレンジの実が採れました。 おいしいオレンジの実が採れました。 もう採れる実がありません。 3年経過 木の高さ: 6 オレンジの実の数: 6個 おいしいオレンジの実が採れました。 おいしいオレンジの実が採れました。 おいしいオレンジの実が採れました。 おいしいオレンジの実が採れました。 おいしいオレンジの実が採れました。 おいしいオレンジの実が採れました。 もう採れる実がありません。 4年経過 木の高さ: 8 オレンジの実の数: 8個 おいしいオレンジの実が採れました。 おいしいオレンジの実が採れました。 おいしいオレンジの実が採れました。 おいしいオレンジの実が採れました。 おいしいオレンジの実が採れました。 おいしいオレンジの実が採れました。 おいしいオレンジの実が採れました。 おいしいオレンジの実が採れました。 もう採れる実がありません。 5年経過 木の高さ: 10 オレンジの実の数: 10個 おいしいオレンジの実が採れました。 おいしいオレンジの実が採れました。 おいしいオレンジの実が採れました。 おいしいオレンジの実が採れました。 おいしいオレンジの実が採れました。 おいしいオレンジの実が採れました。 おいしいオレンジの実が採れました。 おいしいオレンジの実が採れました。 おいしいオレンジの実が採れました。 おいしいオレンジの実が採れました。 もう採れる実がありません。 6年経過 木の高さ: 木は枯れています。 オレンジの実の数: 0個 木は枯れています。 $
0 コメント:
コメントを投稿