開発環境
- 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 コメント:
コメントを投稿