2012年12月12日水曜日

開発環境

『初めてのプログラミング 第2版』(Chris Pine 著、長尾 高弘 訳、オライリー・ジャパン、2010年、ISBN978-4-87311-469-9)の 7章(フロー制御), 7.5(練習問題)うるう年 を解いてみる。

その他参考書籍

うるう年

コード(TextWrangler)

sample.rb

#!/usr/bin/env ruby1.9
# -*- coding: utf-8 -*-

print "範囲の先頭の年を入力: "
start = gets.chomp.to_i
print "範囲の末尾の年を入力: "
stop = gets.chomp.to_i

puts "うるう年一覧"
start += 4 - start % 4 if start % 4 != 0

while start <= stop
  if start % 100 != 0 or start % 400 == 0
    puts start
  end
  start += 4
end

入出力結果(Terminal)

$ ./sample.rb
範囲の先頭を入力: 1595
範囲の末尾の年を入力: 2005
うるう年一覧
1596
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
1704
1708
1712
1716
1720
1724
1728
1732
1736
1740
1744
1748
1752
1756
1760
1764
1768
1772
1776
1780
1784
1788
1792
1796
1804
1808
1812
1816
1820
1824
1828
1832
1836
1840
1844
1848
1852
1856
1860
1864
1868
1872
1876
1880
1884
1888
1892
1896
1904
1908
1912
1916
1920
1924
1928
1932
1936
1940
1944
1948
1952
1956
1960
1964
1968
1972
1976
1980
1984
1988
1992
1996
2000
2004
$

ちなみにJavaScriptの場合。

コード(TextWrangler)

var result = "うるう年一覧\n";
var start = parseInt($('#t0').val());
var stop = parseInt($('#t1').val());
start += start % 4 ? 4 - start % 4 : 0;
while(start <= stop){
  if(start % 100 !== 0 || start % 400 == 0){
    result += start + "\n";
  }
  start += 4;
}
$('#pre0').text(result);



pythonの場合。

sample.py

コード(TextWrangler)

#!/usr/bin/env python3.3
# -*- coding: utf-8 -*-

start = int(input("範囲の先頭の年を入力: "))
stop = int(input("変異の末尾の年を入力: "))

start += 4 - start % 4 if start % 4 else 0
while start <= stop:
    if start % 100 != 0 or start % 400 == 0:
        print(start)
    start += 4

入出力結果(Terminal)

$ ./sample.py
範囲の先頭の年を入力: 1595
変異の末尾の年を入力: 2005
1596
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
1704
1708
1712
1716
1720
1724
1728
1732
1736
1740
1744
1748
1752
1756
1760
1764
1768
1772
1776
1780
1784
1788
1792
1796
1804
1808
1812
1816
1820
1824
1828
1832
1836
1840
1844
1848
1852
1856
1860
1864
1868
1872
1876
1880
1884
1888
1892
1896
1904
1908
1912
1916
1920
1924
1928
1932
1936
1940
1944
1948
1952
1956
1960
1964
1968
1972
1976
1980
1984
1988
1992
1996
2000
2004
$

perlの場合。

sample.pl

コード(TextWrangler)

#!/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>);
$start += $start % 4 ? 4 - $start % 4 : 0;
while($start <= $stop){
  print "$start\n" if $start % 100 != 0 or $start % 400 == 0;
  $start += 4;
}

入出力結果(Terminal)

$ ./sample.pl
範囲の先頭の年を入力: 1595
範囲の末尾の年を入力: 2005
1596
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
1704
1708
1712
1716
1720
1724
1728
1732
1736
1740
1744
1748
1752
1756
1760
1764
1768
1772
1776
1780
1784
1788
1792
1796
1804
1808
1812
1816
1820
1824
1828
1832
1836
1840
1844
1848
1852
1856
1860
1864
1868
1872
1876
1880
1884
1888
1892
1896
1904
1908
1912
1916
1920
1924
1928
1932
1936
1940
1944
1948
1952
1956
1960
1964
1968
1972
1976
1980
1984
1988
1992
1996
2000
2004
$

0 コメント:

コメントを投稿