2012年11月7日水曜日

開発環境

『初めてのプログラミング 第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

years = []

year = start

while year <= stop
  break if year % 400 == 0 or 
    (year % 100 != 0 and year % 4 == 0)
  year += 1
end

years.push year

year += 4

while year <= stop
  years.push year if year % 400 == 0 or 
    (year % 100 != 0 and year % 4 == 0)
  year += 4
end

print years.join("\n") + "\n"

入出力結果(Terminal)

$ ./sample.rb
範囲の先頭の年を入力: 1595
範囲の末尾の年を入力: 1605
1596
1600
1604
$ ./sample.rb
範囲の先頭の年を入力: 1795
範囲の末尾の年を入力: 1810
1796
1804
1808
$ ./sample.rb
範囲の先頭の年を入力: 1895
範囲の末尾の年を入力: 1910
1896
1904
1908
$ ./sample.rb
範囲の先頭の年を入力: 1980
範囲の末尾の年を入力: 2005
1980
1984
1988
1992
1996
2000
2004
$

ちなみにJavaScriptの場合。

コード(TextWrangler)

var start = parseInt($('#t0').val());
var stop = parseInt($('#t1').val());
years = [];
var year = start;
while(year <= stop){
  if(year % 400 === 0 || 
    (year % 100 !== 0 && year % 4 === 0)) break;
  year += 1;
}
years.push(year);
year += 4;
while(year <= stop){
  if(year % 400 === 0 ||
    (year % 100 !== 0 && year % 4 === 0)){
    years.push(year); 
  }
  year += 4;
}
var result = years.join("\n") + "\n";
$('#pre0').text(result);



pythonの場合。

sample.py

コード(TextWrangler)

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

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

years = []

year = start

while year <= stop:
  if year % 400 == 0 or \
     (year % 100 != 0 and year % 4 == 0):
    break
  year += 1
else:
  print("範囲に閏年は含まれていない")

years.append(year)

year += 4

while year <= stop:
  if year % 400 == 0 or \
    (year % 100 != 0 and year % 4 == 0):
    years.append(year)
  year += 4

years = map(str, years)
print("\n".join(years))

入出力結果(Terminal)

$ ./sample.py
範囲の先頭の年を入力: 1595
範囲の末尾の年を入力: 1605
1596
1600
1604
$ ./sample.py
範囲の先頭の年を入力: 1795
範囲の末尾の年を入力: 1810
1796
1804
1808
$ ./sample.py
範囲の先頭の年を入力: 1895
範囲の末尾の年を入力: 1910
1896
1904
1908
$ ./sample.py
範囲の先頭の年を入力: 1980
範囲の末尾の年を入力: 2005
1980
1984
1988
1992
1996
2000
2004
$

0 コメント:

コメントを投稿