2012年12月13日木曜日

開発環境

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

その他参考書籍

配列の構築とソート

コード(TextWrangler)

sample.rb

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

words = []
puts "配列を構築(1行に一要素、空行で終了)"
while true
  word = gets.chomp
  break if word =~ /^\s*$/
  words.push word
end
sorted_words = words.sort
puts "ソート前: #{words.join(',')}"
puts "ソート後: #{sorted_words.join(',')}"

入出力結果(Terminal)

$ ./sample.rb
配列を構築(1行に一要素、空行で終了)
e
a
d
b
c

ソート前: e,a,d,b,c
ソート後: a,b,c,d,e
$

ちなみにJavaScriptの場合。

コード(TextWrangler)

var result = "";
var words = [];
while(1){
  var word = prompt("単語を入力(空文字で終了)","");
  if(/^\s*$/.test(word)) break;
  words.push(word);
}
var sorted_words = words.slice();
sorted_words.sort();
var result = 
  "ソート前: " + words + "\n" +
  "ソート後: " + sorted_words + "\n";
$('#pre0').text(result);


pythonの場合。

sample.py

コード(TextWrangler)

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

import re

print("配列の構築")
words = []
while True:
    word = input()
    if re.match(r"^\s*$", word): break
    words.append(word)

sorted_words = sorted(words)
print("ソート前: " + ",".join(words))
print("ソート後: " + ",".join(sorted_words))

入出力結果(Terminal)

$ ./sample.py
配列の構築
e
a
d
b
c

ソート前: e,a,d,b,c
ソート後: a,b,c,d,e
$

perlの場合。

sample.pl

コード(TextWrangler)

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

my @words = ();
while(<>){
  chomp;
  last if /\A\s*\Z/;
  push @words, $_;
}
my @sorted = sort @words;
print "ソート前: @words\n";
print "ソート後: @sorted\n";

入出力結果(Terminal)

$ ./sample.pl
e
a
d
b
c

ソート前: e a d b c
ソート後: a b c d e
$

0 コメント:

コメントを投稿