開発環境
- OS X Lion - Apple(OS)
- BBEdit - Bare Bones Software, Inc.(Text Editor)
- Script言語:Ruby
『初めてのプログラミング 第2版』(Chris Pine 著、長尾 高弘 訳、オライリー・ジャパン、2010年、ISBN978-4-87311-469-9)の 12章(新しいクラスのオブジェクト), 12.2(練習問題)ハッピーバースデー を解いてみる。
その他参考書籍
- 『プログラミング言語 Ruby』David Flanagan, まつもと ゆきひろ 著 、卜部 昌平 監訳、長尾 高弘 訳、オライリー・ジャパン、2009年、ISBN978-4-87311-394-4)
- Rubyクックブック ―エキスパートのための応用レシピ集
ハッピーバースデー
コード(BBEdit)
sample.rb
#!/usr/bin/env ruby1.9
#-*- coding: utf-8 -*-
puts "誕生日を入力"
print "西暦: "
b_y = gets.chomp.to_i
print "月: "
b_m = gets.chomp.to_i
print "日: "
b_d = gets.chomp.to_i
td = Time.new
age = 1
while Time.local(b_y + age, b_m, b_d). <= td
puts "平手打ち(パシッ) (#{age}歳)"
age += 1
end
入出力結果(Terminal)
$ ./sample.rb 誕生日を入力 西暦: 2000 月: 2 日: 2 平手打ち(パシッ) (1歳) 平手打ち(パシッ) (2歳) 平手打ち(パシッ) (3歳) 平手打ち(パシッ) (4歳) 平手打ち(パシッ) (5歳) 平手打ち(パシッ) (6歳) 平手打ち(パシッ) (7歳) 平手打ち(パシッ) (8歳) 平手打ち(パシッ) (9歳) 平手打ち(パシッ) (10歳) 平手打ち(パシッ) (11歳) 平手打ち(パシッ) (12歳) 平手打ち(パシッ) (13歳) $ ./sample.rb 誕生日を入力 西暦: 2000 月: 2 日: 3 平手打ち(パシッ) (1歳) 平手打ち(パシッ) (2歳) 平手打ち(パシッ) (3歳) 平手打ち(パシッ) (4歳) 平手打ち(パシッ) (5歳) 平手打ち(パシッ) (6歳) 平手打ち(パシッ) (7歳) 平手打ち(パシッ) (8歳) 平手打ち(パシッ) (9歳) 平手打ち(パシッ) (10歳) 平手打ち(パシッ) (11歳) 平手打ち(パシッ) (12歳) 平手打ち(パシッ) (13歳) $ ./sample.rb 誕生日を入力 西暦: 2000 月: 2 日: 4 平手打ち(パシッ) (1歳) 平手打ち(パシッ) (2歳) 平手打ち(パシッ) (3歳) 平手打ち(パシッ) (4歳) 平手打ち(パシッ) (5歳) 平手打ち(パシッ) (6歳) 平手打ち(パシッ) (7歳) 平手打ち(パシッ) (8歳) 平手打ち(パシッ) (9歳) 平手打ち(パシッ) (10歳) 平手打ち(パシッ) (11歳) 平手打ち(パシッ) (12歳) $
ちなみにJavaScriptの場合。
コード(BBEdit)
var b_year = parseInt($('#b_year').val(), 10),
b_mon = parseInt($('#b_mon').val(), 10),
b_day = parseInt($('#b_day').val(), 10),
bd = new Date(b_year, b_mon - 1, b_day),
td = new Date(),
age = 1,
result = "";
while ( bd.setYear(year = bd.getFullYear() + 1) <= td ) {
result += "平手打ち(パシッ) (" + age + "歳)\n";
age += 1;
}
$('#pre0').text(result);
誕生日を入力
pythonの場合。
sample.py
コード(BBEdit)
#!/usr/bin/env python3.3
#-*- coding: utf-8 -*-
import datetime
print("誕生日を入力")
b_year = int(input("西暦: "))
b_month = int(input("月: "))
b_day = int(input("日: "))
bd = datetime.datetime(b_year, b_month, b_day)
td = datetime.datetime.today()
age = 1
while bd.replace(year=bd.year + age) <= td:
print("平手打ち(パシッ) {0}歳".format(age))
age += 1
入出力結果(Terminal)
$ ./sample.py 誕生日を入力 西暦: 2000 月: 2 日: 2 平手打ち(パシッ) 1歳 平手打ち(パシッ) 2歳 平手打ち(パシッ) 3歳 平手打ち(パシッ) 4歳 平手打ち(パシッ) 5歳 平手打ち(パシッ) 6歳 平手打ち(パシッ) 7歳 平手打ち(パシッ) 8歳 平手打ち(パシッ) 9歳 平手打ち(パシッ) 10歳 平手打ち(パシッ) 11歳 平手打ち(パシッ) 12歳 平手打ち(パシッ) 13歳 $ ./sample.py 誕生日を入力 西暦: 2000 月: 2 日: 3 平手打ち(パシッ) 1歳 平手打ち(パシッ) 2歳 平手打ち(パシッ) 3歳 平手打ち(パシッ) 4歳 平手打ち(パシッ) 5歳 平手打ち(パシッ) 6歳 平手打ち(パシッ) 7歳 平手打ち(パシッ) 8歳 平手打ち(パシッ) 9歳 平手打ち(パシッ) 10歳 平手打ち(パシッ) 11歳 平手打ち(パシッ) 12歳 平手打ち(パシッ) 13歳 $ ./sample.py 誕生日を入力 西暦: 2000 月: 2 日: 4 平手打ち(パシッ) 1歳 平手打ち(パシッ) 2歳 平手打ち(パシッ) 3歳 平手打ち(パシッ) 4歳 平手打ち(パシッ) 5歳 平手打ち(パシッ) 6歳 平手打ち(パシッ) 7歳 平手打ち(パシッ) 8歳 平手打ち(パシッ) 9歳 平手打ち(パシッ) 10歳 平手打ち(パシッ) 11歳 平手打ち(パシッ) 12歳 $
perlの場合。
sample.pl
コード(BBEdit)
#!/usr/bin/env perl
use strict;
use warnings;
use utf8;
use 5.016;
binmode STDIN, ":utf8";
binmode STDOUT, ":utf8";
use Time::Local;
print "誕生日を入力\n";
print "西暦: ";
chomp(my $b_year = <STDIN>);
print "月: ";
chomp(my $b_mon = <STDIN>);
print "日: ";
chomp(my $b_day = <STDIN>);
my $age = 1;
my $td = timelocal(localtime);
while (timelocal(0, 0, 0, $b_day, $b_mon - 1, $b_year + $age) <= $td) {
print "平手打ち(パシッ) ${age}歳\n";
$age += 1;
}
入出力結果(Terminal)
$ ./sample.pl 誕生日を入力 西暦: 2000 月: 2 日: 2 平手打ち(パシッ) 1歳 平手打ち(パシッ) 2歳 平手打ち(パシッ) 3歳 平手打ち(パシッ) 4歳 平手打ち(パシッ) 5歳 平手打ち(パシッ) 6歳 平手打ち(パシッ) 7歳 平手打ち(パシッ) 8歳 平手打ち(パシッ) 9歳 平手打ち(パシッ) 10歳 平手打ち(パシッ) 11歳 平手打ち(パシッ) 12歳 平手打ち(パシッ) 13歳 $ ./sample.pl 誕生日を入力 西暦: 2000 月: 2 日: 3 平手打ち(パシッ) 1歳 平手打ち(パシッ) 2歳 平手打ち(パシッ) 3歳 平手打ち(パシッ) 4歳 平手打ち(パシッ) 5歳 平手打ち(パシッ) 6歳 平手打ち(パシッ) 7歳 平手打ち(パシッ) 8歳 平手打ち(パシッ) 9歳 平手打ち(パシッ) 10歳 平手打ち(パシッ) 11歳 平手打ち(パシッ) 12歳 平手打ち(パシッ) 13歳 $ ./sample.pl 誕生日を入力 西暦: 2000 月: 2 日: 4 平手打ち(パシッ) 1歳 平手打ち(パシッ) 2歳 平手打ち(パシッ) 3歳 平手打ち(パシッ) 4歳 平手打ち(パシッ) 5歳 平手打ち(パシッ) 6歳 平手打ち(パシッ) 7歳 平手打ち(パシッ) 8歳 平手打ち(パシッ) 9歳 平手打ち(パシッ) 10歳 平手打ち(パシッ) 11歳 平手打ち(パシッ) 12歳 $
0 コメント:
コメントを投稿