開発環境
- OS X Lion - Apple(OS)
- TextWrangler(Text Editor) (BBEditの機能制限無料版、light版)
- Script言語:Ruby
『初めてのプログラミング 第2版』(Chris Pine 著、長尾 高弘 訳、オライリー・ジャパン、2010年、ISBN978-4-87311-469-9)の 7章(フロー制御), 7.5(練習問題)うるう年 を解いてみる。
その他参考書籍
- 『プログラミング言語 Ruby』David Flanagan, まつもと ゆきひろ 著 、卜部 昌平 監訳、長尾 高弘 訳、オライリー・ジャパン、2009年、ISBN978-4-87311-394-4)
- Rubyクックブック ―エキスパートのための応用レシピ集
うるう年
コード(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 コメント:
コメントを投稿