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