開発環境
- OS X Lion - Apple(OS)
- BBEdit - Bare Bones Software, Inc.(Text Editor)
- Script言語:Ruby
『初めてのプログラミング 第2版』(Chris Pine 著、長尾 高弘 訳、オライリー・ジャパン、2010年、ISBN978-4-87311-469-9)の 7章(フロー制御), 7.5(練習問題)うるう年 を解いてみる。
その他参考書籍
- 『プログラミング言語 Ruby』David Flanagan, まつもと ゆきひろ 著 、卜部 昌平 監訳、長尾 高弘 訳、オライリー・ジャパン、2009年、ISBN978-4-87311-394-4)
- Rubyクックブック ―エキスパートのための応用レシピ集
うるう年
コード(BBEdit)
sample.rb
#!/usr/bin/env ruby1.9
#-*- coding: utf-8 -*-
print "範囲の先頭: "
start = gets.chomp.to_i
print "範囲の末尾: "
stop = gets.chomp.to_i
year = start
result = "うるう年一覧\n"
while year <= stop
if (year % 400 == 0) ||
(year % 100 != 0 and year % 4 == 0)
result += "#{year}\n"
year += 4
break
else
year += 1
end
end
while year <= stop
if (year % 400 == 0) ||
(year % 100 != 0 and year % 4 == 0)
result += "#{year}\n"
end
year += 4
end
print result
入出力結果(Terminal)
$ ./sample.rb 範囲の先頭: 1599 範囲の末尾: 1701 うるう年一覧 1600 1604 1608 1612 1616 1620 1624 1628 1632 1636 1640 1644 1648 1652 1656 1660 1664 1668 1672 1676 1680 1684 1688 1692 1696 $
ちなみにJavaScriptの場合。
コード(BBEdit)
var start = parseInt($('#start_year').val(), 10);
var stop = parseInt($('#stop_year').val(), 10);
var result = "うるう年一覧\n";
while(start <= stop){
if((start % 400 === 0) ||
(start % 100 !== 0 && start % 4 === 0)){
result += start + "\n";
start += 4;
break;
} else {
start += 1;
}
}
while(start <= stop){
if((start % 400 === 0) ||
(start % 100 !== 0 && start % 4 === 0)){
result += start + "\n";
}
start += 4;
}
$('#pre0').text(result);
pythonの場合。
sample.py
コード(BBEdit)
#!//usr//bin//env python3.3
# -*- coding: utf-8 -*-
start = int(input("範囲の先頭: "))
stop = int(input("範囲の末尾: "))
result = "うるう年一覧\n"
while start <= stop:
if (start % 400 == 0) or (
start % 100 != 0 and start % 4 == 0):
result += "{0}\n".format(start)
start += 4
break
else:
start += 1
for year in range(start, stop + 1, 4):
if (year % 400 == 0) or (
year % 100 != 0 and year % 4 == 0):
result += "{0}\n".format(year)
print(result, end="")
入出力結果(Terminal)
$ ./sample.py 範囲の先頭: 1599 範囲の末尾: 1701 うるう年一覧 1600 1604 1608 1612 1616 1620 1624 1628 1632 1636 1640 1644 1648 1652 1656 1660 1664 1668 1672 1676 1680 1684 1688 1692 1696 $
perlの場合。
sample.pl
コード(BBEdit)
#!/usr/bin/env perl
use strict;
use warnings;
use utf8;
use 5.016;
binmode STDIN, ":utf8";
binmode STDOUT, ":utf8";
print "範囲の先頭: ";
chomp(my $start = <STDIN>);
print "範囲の末尾: ";
chomp(my $stop = <STDIN>);
my $result = "うるう年一覧\n";
while($start <= $stop){
if(($start % 400 == 0) ||
($start % 100 != 0 && $start % 4 == 0)){
$result .= "$start\n";
$start += 4;
last;
} else {
$start += 1;
}
}
while($start <= $stop){
if(($start % 400 == 0) ||
($start % 100 != 0 && $start % 4 == 0)){
$result .= "$start\n";
}
$start += 4;
}
print $result;
入出力結果(Terminal)
$ ./sample.pl 範囲の先頭: 1599 範囲の末尾: 1701 うるう年一覧 1600 1604 1608 1612 1616 1620 1624 1628 1632 1636 1640 1644 1648 1652 1656 1660 1664 1668 1672 1676 1680 1684 1688 1692 1696 $
0 コメント:
コメントを投稿