2013年1月14日月曜日

開発環境

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

その他参考書籍

「壁にビールが99本」

コード(BBEdit)

sample.rb

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

i = 5
while true
  puts "#{i} bottles of beer on the wall, #{i} bottles of beer!"
  i -= 1
  break if i == 1
  puts "Take one down, pass it aorund, #{i} bottles of beer on the wall!"
end
puts "Take one down, pass it around, #{i} bottle of beer on the wall!"
puts "#{i} bottle of beer on the wall, #{i} bottle of beer!"
puts "Take one down, pass it around, no more bottles of beer on the wall!"

入出力結果(Terminal)

$ ./sample.rb
5 bottles of beer on the wall, 5 bottles of beer!
Take one down, pass it aorund, 4 bottles of beer on the wall!
4 bottles of beer on the wall, 4 bottles of beer!
Take one down, pass it aorund, 3 bottles of beer on the wall!
3 bottles of beer on the wall, 3 bottles of beer!
Take one down, pass it aorund, 2 bottles of beer on the wall!
2 bottles of beer on the wall, 2 bottles of beer!
Take one down, pass it around, 1 bottle of beer on the wall!
1 bottle of beer on the wall, 1 bottle of beer!
Take one down, pass it around, no more bottles of beer on the wall!
$

ちなみにJavaScriptの場合。

コード(BBEdit)

var i = 5;
var result = "";
while(true){
  result += i + " bottles of beer on the wall, " + i + " bottles of beer!\n";
  i--;
  if(i === 1) break;
  result += "Take one down, pass it aorund, " + i + " bottles of beer on the wall!\n";
}
result += "Take one down, pass it around, " + i + " bottle of beer on the wall!\n" + 
  i + " bottle of beer on the wall, " + i + " bottle of beer!\n" +
  "Take one down, pass it around, no more bottles of beer on the wall!\n";
$('#pre0').text(result);



pythonの場合。

sample.py

コード(BBEdit)

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

for x in range(5, 2, -1):
    print("{0} bottles of beer on the wall, {0} bottles of beer!".format(x))
    x -= 1
    print("Take one down, pass it around, {0} bottles of beer on the wall!".format(x))
else:
    print("{0} bottles of beer on the wall, {0} bottles of beer!".format(2))
    print("Take one down, pass it around, {0} bottle of beer on the wall!".format(1))
print("{0} bottle of beer on the wall, {0} bottle of beer!".format(1))
print("Take one down, pass it around, no more bottles of beer on the wall!")

入出力結果(Terminal)

$ ./sample.py
5 bottles of beer on the wall, 5 bottles of beer!
Take one down, pass it around, 4 bottles of beer on the wall!
4 bottles of beer on the wall, 4 bottles of beer!
Take one down, pass it around, 3 bottles of beer on the wall!
3 bottles of beer on the wall, 3 bottles of beer!
Take one down, pass it around, 2 bottles of beer on the wall!
2 bottles of beer on the wall, 2 bottles of beer!
Take one down, pass it around, 1 bottle of beer on the wall!
1 bottle of beer on the wall, 1 bottle of beer!
Take one down, pass it around, no more bottles of beer on the wall!
$

perlの場合。

sample.pl

コード(BBEdit)

#!/usr/bin/env perl
use strict;
use warnings;
use utf8;
use 5.016;
binmode STDIN, ":utf8";
binmode STDOUT, ":utf8";

my $i = 5;
my $result = "";
while(1){
  $result .= $i . " bottles of beer on the wall, " . $i . " bottles of beer!\n";
  $i--;
  last if $i == 1;
  $result .= "Take one down, pass it aorund, " . $i . " bottles of beer on the wall!\n";
}
$result .= "Take one down, pass it around, " . $i . " bottle of beer on the wall!\n" . 
  $i . " bottle of beer on the wall, " . $i . " bottle of beer!\n" .
  "Take one down, pass it around, no more bottles of beer on the wall!\n";
print $result;

入出力結果(Terminal)

$ ./sample.pl
5 bottles of beer on the wall, 5 bottles of beer!
Take one down, pass it aorund, 4 bottles of beer on the wall!
4 bottles of beer on the wall, 4 bottles of beer!
Take one down, pass it aorund, 3 bottles of beer on the wall!
3 bottles of beer on the wall, 3 bottles of beer!
Take one down, pass it aorund, 2 bottles of beer on the wall!
2 bottles of beer on the wall, 2 bottles of beer!
Take one down, pass it around, 1 bottle of beer on the wall!
1 bottle of beer on the wall, 1 bottle of beer!
Take one down, pass it around, no more bottles of beer on the wall!
$

0 コメント:

コメントを投稿