2012年11月9日金曜日

開発環境

『初めてのプログラミング 第2版』(Chris Pine 著、長尾 高弘 訳、オライリー・ジャパン、2010年、ISBN978-4-87311-469-9)の 8章(配列とイテレータ), 8.3(練習問題)目次改訂版 を解いてみる。

その他参考書籍

目次改訂版

コード(TextWrangler)

sample.rb

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

contents = {1 => ["Start", 1],
            2 => ["Number", 11],
            3 => ["String", 15]
            }

width = 40
puts "table of contents".center(width)
puts
contents.each_key do |key|
  puts "chapter #{key}: #{contents[key][0]}".ljust(width / 2) +
    "p.#{contents[key][1]}".rjust(width / 2)
end

入出力結果(Terminal)

$ ./sample.rb
           table of contents            
chapter 1: Start                     p.1
chapter 2: Number                   p.11
chapter 3: String                   p.15

ちなみにJavaScriptの場合。

コード(TextWrangler)

var contents = [["Start", 1],
                ["Number", 11],
                ["String", 15]
                ]
var width = 40;
var space = " ";
var c = "table of contents";
var l = width - c.length;
var result = "";
for(var i = 0; i < l / 2; i++){
  result += space;
}
result += c + "\n\n";
for(var i = 0; i < contents.length; i ++){
  l = width;
  l -= ("chapter " + (i+1) + contents[i][0]).length;
  l -= ("p." + contents[i][1]).length;
  result += "chapter " + (i+1) + ": " + contents[i][0];
  for(var k = 0; k < l; k++){
    result += space;
  }
  result += "p." + contents[i][1] + "\n";
}
$('#pre0').text(result);


pythonの場合。

sample.py

コード(TextWrangler)

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

contents = [["Start", 1],
            ["Number", 11],
            ["String", 15]]
width = 40
print("table of contents".center(width))
print()
i = 1
for content in contents:
  print("chapter {0}: {1}".format(i, content[0]).ljust(width // 2) +
    "p.{0}".format(content[1]).rjust(width // 2))
  i += 1

入出力結果(Terminal)

$ ./sample.py
           table of contents            

chapter 1: Start                     p.1
chapter 2: Number                   p.11
chapter 3: String                   p.15
$

0 コメント:

コメントを投稿