初めてのプログラミング5(イテレータ)

当ブログに於いてRuby及びプログラミングの入門書 初めてのプログラミング の各章の最後に位置付けられる練習問題にて正解の掲載されぬに 少しく不安を感じたかも知れぬ本誌購読のご同志の為の、 参照、比較検討用に生贄的に供す個人的な解釈、解答を掲載す為の本カテゴリー 初めてのプログラミング も第8章
8章 配列とイテレータ
8.1 メソッドeach
8.2 さらなる配列メソッド
8.3 練習問題
に入らば愈々本格的な香りが漂い始める感も在りや無しや、 当章に於いては配列なるプログラミングらしさを味わえる最初のオブジェクトの、 プログラミングらしさを味わう手法としての繰り返しが教示されています。
而して繰り返し手法について述べられる部分を引用すれば
あなたはこれを見て、 「これはなんとなく前に習ったループによく似てるなぁ」と思ったかもしれません。 はい、確かに似ています。 重要な違いは、eachがメソッドであるということです。
(ry
でも、eachは違います。 eachは配列のメソッドの1つなのです。 eachのようにループと「同じように振る舞う」メソッドは、 しばしば イテレータ という名前で呼ばれます。
と実に明快にイテレータなるものにつき記述されています。

次に項目立てられる中で幾つかの配列についての他メソッドの紹介の後、 用意される当章の練習問題は73頁の
好きな数だけ単語の入力をしてもらい (1行に1単語と入力が続き、 最後は空行で「Enter」のみとします)、 それをアルファベット順に並べ替えて出力するようなプログラムです。
にて「ヒント」として次ページに
配列を順番に並べ替える(ソートする) には素敵なメソッドsortがあります。 これを使いましょう。
とあれば、今回は此方への当方の解答例を贄に供したいと思います。
スポンサーリンク
以下
word = []

while word.last != ´´
  puts ´お好きな単語を入力して下さい。´
  puts ´終了したい時は何も入力しないでENTERを押して下さい。´
  word.push gets.chomp
end
word.pop

puts ´入力された単語をアルファベット順に並べ替えて表示します。´
puts word.sort.join(´, ´)
を記述するにあたり、紹介書籍の指示に従い最初の行で配列を新規に作成、 ユーザーの入力を受け付け、其の配列に順次格納し、 ユーザーの終了意思、即ち空行の入力を以て、 ソートして後、表示する様になっているかと思います。

以上の3プログラムを、現在の手元環境
ruby 1.8.6 (2007-03-13 patchlevel 0) [i386-mswin32]
で走らせて得られる結果は、
C:¥tsukamotch¥Ruby¥programs>word_sort.rb
お好きな単語を入力して下さい。
終了したい時は何も入力しないでENTERを押して下さい。
ruby
お好きな単語を入力して下さい。
終了したい時は何も入力しないでENTERを押して下さい。
java
お好きな単語を入力して下さい。
終了したい時は何も入力しないでENTERを押して下さい。
asp
お好きな単語を入力して下さい。
終了したい時は何も入力しないでENTERを押して下さい。
php
お好きな単語を入力して下さい。
終了したい時は何も入力しないでENTERを押して下さい。
c
お好きな単語を入力して下さい。
終了したい時は何も入力しないでENTERを押して下さい。
javascript
お好きな単語を入力して下さい。
終了したい時は何も入力しないでENTERを押して下さい。
perl
お好きな単語を入力して下さい。
終了したい時は何も入力しないでENTERを押して下さい。

入力された単語をアルファベット順に並べ替えて表示します。
asp, c, java, javascript, perl, php, ruby
と、取敢えずは想定内の結果を得られる様です。
但し、素敵なメソッドsortは 大文字、小文字を区別し大文字を優先する様ですのでご注意くださればと思います。
スポンサーリンク

「初めてのプログラミング5(イテレータ)」への2件のフィードバック

  1. 再帰プログラム入門

    初めてのプログラミング懇切丁寧、微に入り細を穿ちて著されればRuby及びプログラミングの両者が目的に共に入門書としてお誂え向きとて愛読の初めてのプログラミングの各章の最後に設けられた練習問題では正解の掲載されぬを、幾許か不安を感じるも在り哉無し哉、共に本誌を

  2. 完全なシャッフル

    初めてのプログラミング当カテゴリー初めてのプログラミングに投稿す度、常々其の有用性を賛美するに吝かならぬが、Ruby及びプログラミングの両者が目的に共に入門書としてお誂え向きとて愛読の初めてのプログラミングも今度は少し許り様相の異なるが訳はアーティクル後半に

コメントは受け付けていません。