1.作成したプログラム
#!/usr/koeki/bin/ruby
# -*- coding: utf-8 -*-

array = []
def bubble(array)
  kazu = array.length
  for x in 0 .. kazu -1 #並び換えのかいすう
    for n in 0 .. kazu -2 #並び換える数字
      if array[n] >  array[n+1]
      then
        k = array[n+1]
        array[n+1] = array[n]
        array[n] = k
      end
    end
  end
end

def display(array)
  for x in 0...array.length
    printf("%d ",array[x])
  end
  print("\n")
end


 print"小さい順に並び換えます。\n"
while true
 
  print"好きな数字を入力してください。(終了はq)"
  number = gets.chomp!
  if number == "q"
  then break
  end
  array.push(number.to_i) #arrayの配列にnumberを追加
end

print"もとの順番の配列\n"
display(array)
print"並べ替え後の配列\n"
bubble(array)
display(array)

2.プログラムの実行結果
小さい順に並び換えます。
好きな数字を入力してください。(終了はq)4
好きな数字を入力してください。(終了はq)8
好きな数字を入力してください。(終了はq)6
好きな数字を入力してください。(終了はq)3
好きな数字を入力してください。(終了はq)7
好きな数字を入力してください。(終了はq)4
好きな数字を入力してください。(終了はq)q
もとの順番の配列
4 8 6 3 7 4 
並べ替え後の配列
3 4 4 6 7 8

3.プログラムの説明
defの説明
bubble
kazuにarray.length を代入する。
次にfor構文で、(参考・基礎プロ1の第4回)変数xに0からarrayの数−1の、一番後ろの前まで、以下の動きを繰り返し、順次代入する。
0からarrayの数−2の、一番後ろの2個前まで、もしarrayのn番目がn+1番目よりもおおき勝った場合、n+1番目を上に移動させたいので、kという空箱にn+1番目を代入し、n+1番目にn番目を代入し、からになったn番目にk(元n+1番目)を代入する。そしてそれをnに順次代入する。

display
変数xに0からarrayの数ぶん、arrayを一つづつ表示するのを繰り返す。

arrayを配列とする。
while文で、numberにユーザーの任意の数字を受け取り、arrayの配列にnumberを追加していく。
最後にdefを呼び出して、結果を表示する。

4.今回はとっても難しかった。西村先生の再帰のページを参考にしたり、別のク
ラスの友達にヒントをもらいまくった。しかし、ユーザの任意の数を並びかえると
言うことだったので、参考になるものが少なかった。
バブルソートの構造は理解できたが、  for n in 0.. kazu -2 で、なぜ-2なの
か分らない。他にも書き方があると思うので、何とか理解したい。

5.添付


---------------------------------------------------------------------------


1.作成した図の説明と頑張った点について
「徹夜を悟くん」
悟くんの頭の部分はキーボードでできている。基礎プロは楽しいけど、難しいの
で、私はよく徹夜で課題をするので、それをそのままキャラクターにした。作業
始めた瞬間、これは徹夜だと悟るので、その時の私の顔だ。友達もよく徹夜する。
色の組み合わせを、補色どうしにして少し目立つ感じにした。なにかインパクト
が欲しかったので、文字を背景に入れこんだ。色を塗るのが難しくて、図形では
なく、自由ペンツール(?)で線を太くして色塗りをした。
文字の間隔をつめたかったので、一回文字を図形化して、ばらばらにした。また、
レイヤーを複数作って、細かい編集や構図を決めた。

2.感想
書いていてとても楽しくて、?やっぱり徹夜してしまった。楽しい。
OpenOfficeのDrawを使ったけど、TGIFよりも使いやすいのではないかなと思った。

3.添付(上のと2つあります)