開発環境
- 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 コメント:
コメントを投稿