提出課題: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