2012年3月15日木曜日

開発環境

『初めてのプログラミング 第2版』(Chris Pine 著、長尾 高弘 訳、オライリー・ジャパン、2010年、ISBN978-4-87311-469-9)の10章(章全部で復習), 10.3(練習問題)シャッフルを解いてみる。

その他参考書籍

シャッフル

コード(TextWrangler)

#!/usr/bin/env ruby
#encoding: utf-8

def shuffle some_array
  shuffled_array = []
  while some_array.length > 0
    r = rand(some_array.length)
    i = 0
    tmp = []
    some_array.each do |item|
      if i == r
        shuffled_array.push item
      else
        tmp.push item
      end
      i += 1
    end
    some_array = tmp
  end
  shuffled_array
end

array1 = [1,2,3,4,5]
array2 = ['a','b','c','d','e']

5.times do
  [array1,array2].each do |array|
    puts "#{array}"
    puts "シャッフル後: #{shuffle array}"
  end
end

入出力結果(Terminal)

$ ./ruby_program.rb
12345
シャッフル後: 45213
abcde
シャッフル後: cdbea
12345
シャッフル後: 31254
abcde
シャッフル後: bacde
12345
シャッフル後: 12345
abcde
シャッフル後: beadc
12345
シャッフル後: 32451
abcde
シャッフル後: edbca
12345
シャッフル後: 13524
abcde
シャッフル後: bcdea
$

今回の周ではirb(インタラクティブRuby)も少しずつ活用してみることに。

本書を続けつつ、上記の本を入手したらそっちに切り替え。

0 コメント:

コメントを投稿