開発環境
- OS X Lion - Apple(OS)
- Emacs、BBEdit - Bare Bones Software, Inc. (Text Editor)
- Ruby (プログラミング言語)
『初めてのプログラミング 第2版』(Chris Pine 著、長尾 高弘 訳、オライリー・ジャパン、2010年、ISBN978-4-87311-469-9)の 12章(新しいクラスのオブジェクト), 12.1(Timeクラス)、12.2(練習問題)、ハッピーバースデー、を解いてみる。
その他参考書籍
- 『プログラミング言語 Ruby』David Flanagan, まつもと ゆきひろ 著 、卜部 昌平 監訳、長尾 高弘 訳、オライリー・ジャパン、2009年、ISBN978-4-87311-394-4)
- Rubyクックブック ―エキスパートのための応用レシピ集
ハッピーバースデー
コード(BBEdit)
sample.rb
#!/usr/bin/env ruby2.0
#-*- coding: utf-8 -*-
puts '生まれた'
print '年: '
birth_year = gets.chomp.to_i
print '月: '
birth_mon = gets.chomp.to_i
print '日: '
birth_day = gets.chomp.to_i
birtah_date = Time.gm(birth_year, birth_mon, birth_day)
td = Time.new
td_year = td.year
td_mon = td.mon
td_day = td.day
age = 0
while birth_year + age < td_year
age += 1
end
if (birth_mon < td_mon) or (birth_mon == td_mon and birth_day < td_day)
age -= 1
end
puts "#{age}歳"
(1..age).each do |age|
puts '平手打ち(パシッ)'
end
入出力結果(Terminal)
$ ./sample.rb 生まれた 年: 2000 月: 10 日: 19 12歳 平手打ち(パシッ) 平手打ち(パシッ) 平手打ち(パシッ) 平手打ち(パシッ) 平手打ち(パシッ) 平手打ち(パシッ) 平手打ち(パシッ) 平手打ち(パシッ) 平手打ち(パシッ) 平手打ち(パシッ) 平手打ち(パシッ) 平手打ち(パシッ) $ ./sample.rb 生まれた 年: 2000 月: 10 日: 20 13歳 平手打ち(パシッ) 平手打ち(パシッ) 平手打ち(パシッ) 平手打ち(パシッ) 平手打ち(パシッ) 平手打ち(パシッ) 平手打ち(パシッ) 平手打ち(パシッ) 平手打ち(パシッ) 平手打ち(パシッ) 平手打ち(パシッ) 平手打ち(パシッ) 平手打ち(パシッ) $ ./sample.rb 生まれた 年: 2000 月: 10 日: 21 13歳 平手打ち(パシッ) 平手打ち(パシッ) 平手打ち(パシッ) 平手打ち(パシッ) 平手打ち(パシッ) 平手打ち(パシッ) 平手打ち(パシッ) 平手打ち(パシッ) 平手打ち(パシッ) 平手打ち(パシッ) 平手打ち(パシッ) 平手打ち(パシッ) 平手打ち(パシッ) $ ./sample.rb 生まれた 年: 2000 月: 11 日: 19 13歳 平手打ち(パシッ) 平手打ち(パシッ) 平手打ち(パシッ) 平手打ち(パシッ) 平手打ち(パシッ) 平手打ち(パシッ) 平手打ち(パシッ) 平手打ち(パシッ) 平手打ち(パシッ) 平手打ち(パシッ) 平手打ち(パシッ) 平手打ち(パシッ) 平手打ち(パシッ) $ ./sample.rb 生まれた 年: 2000 月: 11 日: 21 13歳 平手打ち(パシッ) 平手打ち(パシッ) 平手打ち(パシッ) 平手打ち(パシッ) 平手打ち(パシッ) 平手打ち(パシッ) 平手打ち(パシッ) 平手打ち(パシッ) 平手打ち(パシッ) 平手打ち(パシッ) 平手打ち(パシッ) 平手打ち(パシッ) 平手打ち(パシッ) $ ./sample.rb 生まれた 年: 2000 月: 9 日: 19 12歳 平手打ち(パシッ) 平手打ち(パシッ) 平手打ち(パシッ) 平手打ち(パシッ) 平手打ち(パシッ) 平手打ち(パシッ) 平手打ち(パシッ) 平手打ち(パシッ) 平手打ち(パシッ) 平手打ち(パシッ) 平手打ち(パシッ) 平手打ち(パシッ) $ ./sample.rb 生まれた 年: 2000 月: 9 日: 21 12歳 平手打ち(パシッ) 平手打ち(パシッ) 平手打ち(パシッ) 平手打ち(パシッ) 平手打ち(パシッ) 平手打ち(パシッ) 平手打ち(パシッ) 平手打ち(パシッ) 平手打ち(パシッ) 平手打ち(パシッ) 平手打ち(パシッ) 平手打ち(パシッ) $
ちなみにpython3.4の場合。
コード(BBEdit)
sample.py
#!/usr/bin/env python
#-*- coding: utf-8 -*-
import datetime
print('生まれた')
birth_year = int(input('年: '))
birth_month = int(input('月: '))
birth_day = int(input('日: '))
birth_date = datetime.date(birth_year, birth_month, birth_day)
td = datetime.date.today()
td_year = td.year
td_month = td.month
td_day = td.day
age = 0
while birth_year + age < td_year:
age += 1
if (birth_month < td_month) or (
birth_month == td_month and birth_day < td_day):
age -= 1
print('年齢: {0}歳'.format(age))
for n in range(age):
print('平手打ち(パシッ)')
入出力結果(Terminal)
$ ./sample.py 生まれた 年: 2000 月: 10 日: 19 年齢: 12歳 平手打ち(パシッ) 平手打ち(パシッ) 平手打ち(パシッ) 平手打ち(パシッ) 平手打ち(パシッ) 平手打ち(パシッ) 平手打ち(パシッ) 平手打ち(パシッ) 平手打ち(パシッ) 平手打ち(パシッ) 平手打ち(パシッ) 平手打ち(パシッ) $ ./sample.py 生まれた 年: 2000 月: 10 日: 20 年齢: 13歳 平手打ち(パシッ) 平手打ち(パシッ) 平手打ち(パシッ) 平手打ち(パシッ) 平手打ち(パシッ) 平手打ち(パシッ) 平手打ち(パシッ) 平手打ち(パシッ) 平手打ち(パシッ) 平手打ち(パシッ) 平手打ち(パシッ) 平手打ち(パシッ) 平手打ち(パシッ) $ ./sample.py 生まれた 年: 2000 月: 10 日: 21 年齢: 13歳 平手打ち(パシッ) 平手打ち(パシッ) 平手打ち(パシッ) 平手打ち(パシッ) 平手打ち(パシッ) 平手打ち(パシッ) 平手打ち(パシッ) 平手打ち(パシッ) 平手打ち(パシッ) 平手打ち(パシッ) 平手打ち(パシッ) 平手打ち(パシッ) 平手打ち(パシッ) $ ./sample.py 生まれた 年: 2000 月: 11 日: 19 年齢: 13歳 平手打ち(パシッ) 平手打ち(パシッ) 平手打ち(パシッ) 平手打ち(パシッ) 平手打ち(パシッ) 平手打ち(パシッ) 平手打ち(パシッ) 平手打ち(パシッ) 平手打ち(パシッ) 平手打ち(パシッ) 平手打ち(パシッ) 平手打ち(パシッ) 平手打ち(パシッ) $ ./sample.py 生まれた 年: 2000 月: 11 日: 21 年齢: 13歳 平手打ち(パシッ) 平手打ち(パシッ) 平手打ち(パシッ) 平手打ち(パシッ) 平手打ち(パシッ) 平手打ち(パシッ) 平手打ち(パシッ) 平手打ち(パシッ) 平手打ち(パシッ) 平手打ち(パシッ) 平手打ち(パシッ) 平手打ち(パシッ) 平手打ち(パシッ) $ ./sample.py 生まれた 年: 2000 月: 9 日: 19 年齢: 12歳 平手打ち(パシッ) 平手打ち(パシッ) 平手打ち(パシッ) 平手打ち(パシッ) 平手打ち(パシッ) 平手打ち(パシッ) 平手打ち(パシッ) 平手打ち(パシッ) 平手打ち(パシッ) 平手打ち(パシッ) 平手打ち(パシッ) 平手打ち(パシッ) $ ./sample.py 生まれた 年: 2000 月: 9 日: 21 年齢: 12歳 平手打ち(パシッ) 平手打ち(パシッ) 平手打ち(パシッ) 平手打ち(パシッ) 平手打ち(パシッ) 平手打ち(パシッ) 平手打ち(パシッ) 平手打ち(パシッ) 平手打ち(パシッ) 平手打ち(パシッ) 平手打ち(パシッ) 平手打ち(パシッ) $
0 コメント:
コメントを投稿