開発環境
- OS X Lion - Apple(OS)
- BBEdit - Bare Bones Software, Inc.(Text Editor)
- Script言語:Ruby
『初めてのプログラミング 第2版』(Chris Pine 著、長尾 高弘 訳、オライリー・ジャパン、2010年、ISBN978-4-87311-469-9)の 8章(配列とイテレータ), 8.3(練習問題)目次改訂版 を解いてみる。
その他参考書籍
- 『プログラミング言語 Ruby』David Flanagan, まつもと ゆきひろ 著 、卜部 昌平 監訳、長尾 高弘 訳、オライリー・ジャパン、2009年、ISBN978-4-87311-394-4)
- Rubyクックブック ―エキスパートのための応用レシピ集
目次改訂版
コード(BBEdit)
sample.rb
#!/usr/bin/env ruby1.9 #-*- coding: utf-8 -*- contents = [['start', 1], ['number', 11], ['string', 15]] width = 40 puts "table of contents".center(width) puts half = width / 2 i = 1 contents.each { |item| puts "chapter #{i}: #{item[0]}".ljust(half) + "p.#{item[1]}".rjust(half) i += 1 }
入出力結果(Terminal)
$ ./sample.rb table of contents chapter 1: start p.1 chapter 2: number p.11 chapter 3: string p.15
ちなみにJavaScriptの場合。
コード(BBEdit)
String.prototype.ljust = function(n){ var result = this; for ( var i = 0; i < n - this.length; i++ ) { result += " "; } return result; }; String.prototype.rjust = function( n ) { var result = ""; for ( var i = 0; i < n - this.length; i++ ) { result += " "; } result += this; return result; }; String.prototype.center = function ( n ) { var result = ""; for ( var i = 0; i < (n - this.length) / 2; i++ ) { result += " "; } result += this; return result; }; var result = ""; var contents = [['start', 1], ['number', 11], ['string', 15]]; var width = 40; var half = width / 2; result += "table of contents".center(width) + "\n\n"; for ( var i = 0; i < contents.length; i++ ) { result += ("chapter " + (i + 1) + ": " + contents[i][0]).ljust(half) + ("p." + contents[i][1]).rjust(half) + "\n"; } $('#pre0').text(result);
pythonの場合。
sample.py
コード(BBEdit)
#!//usr//bin//env python3.3 # -*- coding: utf-8 -*- contents = [['start', 1], ['number', 11], ['string', 15]] width = 40 half = width // 2 print("table of contents".center(width)) print() i = 1 for a, b in contents: print("chapter {0}: {1}".format(i, a).ljust(half) + "p.{0}".format(b).rjust(half)) i += 1
入出力結果(Terminal)
$ ./sample.py table of contents chapter 1: start p.1 chapter 2: number p.11 chapter 3: string p.15
perlの場合。
sample.pl
コード(BBEdit)
#!/usr/bin/env perl use strict; use warnings; use utf8; use 5.016; binmode STDIN, ":utf8"; binmode STDOUT, ":utf8"; my @contents = (['start', 1], ['number', 11], ['string', 15]); my $width = 40; my $half = $width / 2; my $s = "table of contents"; print " " x (($width - length $s) / 2) . $s . "\n\n"; my $i = 1; for( @contents ){ printf "%-${half}s%${half}s\n", "chapter $i: $_->[0]", "p. $_->[1]"; $i++; }
入出力結果(Terminal)
$ ./sample.pl table of contents chapter 1: start p. 1 chapter 2: number p. 11 chapter 3: string p. 15 $
0 コメント:
コメントを投稿