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