2013年10月20日日曜日

開発環境

『初めてのプログラミング 第2版』(Chris Pine 著、長尾 高弘 訳、オライリー・ジャパン、2010年、ISBN978-4-87311-469-9)の 12章(新しいクラスのオブジェクト), 12.1(Timeクラス)、12.2(練習問題)、ハッピーバースデー、を解いてみる。

その他参考書籍

ハッピーバースデー

コード(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 コメント:

コメントを投稿