提出課題:06回目レポート
本文:
1.作成したプログラム
問題2に取り組んだ。

#!/usr/koeki/bin/ruby
# -*- coding: utf-8 -*-


array = []
while true
  printf("配列の%d番目の要素を入力してください。(qで入力終了)\n",array.length+1)
  get = gets.chomp!
  if get == "q"
    break
  elsif get == ""
    redo
  else
    array << get.to_i
  end
end
p array


def bubblesort(array, n)
  if n < 0
    return array
  else
    for i in 1..(n-1)
      if array[i-1] > array[i]
        a = array[i]
        array[i] = array[i-1]
        array[i-1] = a
      end
      p array
    end
  bubblesort(array, n-1)
  end
end

p bubblesort(array, array.length)


2.実行結果
配列の1番目の要素を入力してください。(qで入力終了)
4
配列の2番目の要素を入力してください。(qで入力終了)
36
配列の3番目の要素を入力してください。(qで入力終了)
77
配列の4番目の要素を入力してください。(qで入力終了)
14
配列の5番目の要素を入力してください。(qで入力終了)
27
配列の6番目の要素を入力してください。(qで入力終了)
378
配列の7番目の要素を入力してください。(qで入力終了)
9
配列の8番目の要素を入力してください。(qで入力終了)
q
[4, 36, 77, 14, 27, 378, 9]
[4, 36, 77, 14, 27, 378, 9]
[4, 36, 77, 14, 27, 378, 9]
[4, 36, 14, 77, 27, 378, 9]
[4, 36, 14, 27, 77, 378, 9]
[4, 36, 14, 27, 77, 378, 9]
[4, 36, 14, 27, 77, 9, 378]
[4, 36, 14, 27, 77, 9, 378]
[4, 14, 36, 27, 77, 9, 378]
[4, 14, 27, 36, 77, 9, 378]
[4, 14, 27, 36, 77, 9, 378]
[4, 14, 27, 36, 9, 77, 378]
[4, 14, 27, 36, 9, 77, 378]
[4, 14, 27, 36, 9, 77, 378]
[4, 14, 27, 36, 9, 77, 378]
[4, 14, 27, 9, 36, 77, 378]
[4, 14, 27, 9, 36, 77, 378]
[4, 14, 27, 9, 36, 77, 378]
[4, 14, 9, 27, 36, 77, 378]
[4, 14, 9, 27, 36, 77, 378]
[4, 9, 14, 27, 36, 77, 378]
[4, 9, 14, 27, 36, 77, 378]
[4, 9, 14, 27, 36, 77, 378]


3.説明
while endで数字を入力してもらう操作の繰り返しを行った。printで文字を表示し、数字を入力してもらう。if文でqを入力した場合はbreakで繰り返しから抜けるようにした。数字の入力だと、redoで繰り返しが続く。def endでバブルソートの繰り返しを行った。一番うしろの値から比較していくので、for i in 1..(n-1)と表した。n-1で比較する値がなくなると、繰り返しが終わる。23行目から29行目で値の比較を行い、並び替えをしている。最後にbubblesortメソッドを呼び出して、入力された配列と入れ替えの様子をpで表示した。


4.感想
自分一人では分からなかったため、先輩に教えてもらいながら作成した。難しくて理解が大変な部分もあったので、次回までに復習したい。忘れずに動画を見て反転授業に望みたい。
添付:
baburu.rb