1.5番

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

total = 0
number = 1

print"8回のレポートの得点を求めます。\n"

while true
  printf("%d回目のレポートの得点を入力してください\n",number)
  score = gets.chomp!
  if score == "exit"
    number -= 1
    break
  elsif number == 8
    total += score.to_i
    break
  elsif score.to_i < 0
    print"点数はマイナスにならない。再入力\n"
    redo
  elsif score.to_i > 8
    print"本当に8点以上ですか?\n"
    print"Yesの場合は1を、Noの場合は2を入力してください\n"
    answer = gets.chomp!.to_i
    if answer == 1
      print"入力を続けてください\n"
    else
      print"再入力してください\n"
      redo
    end
  end
   total += score.to_i
   number += 1
   #p total , number
end

average = total / number

printf("合計得点は%.1f点です。\n",total)
printf("平均は%.1f点です。\n",average)

3.プログラムの実行結果
sime{c118xxx}% ./report3.rb                                         [~/program]
8回のレポートの得点を求めます。
1回目のレポートの得点を入力してください
9
本当に8点以上ですか?
Yesの場合は1を、Noの場合は2を入力してください
1
入力を続けてください
2回目のレポートの得点を入力してください
9
本当に8点以上ですか?
Yesの場合は1を、Noの場合は2を入力してください
2
再入力してください
2回目のレポートの得点を入力してください
4
3回目のレポートの得点を入力してください
3
4回目のレポートの得点を入力してください
6
5回目のレポートの得点を入力してください
5
6回目のレポートの得点を入力してください
4
7回目のレポートの得点を入力してください
4
8回目のレポートの得点を入力してください
exit
合計得点は35.0点です。
平均は5.0点です。

4.プログラムの説明
 条件を満たしているものを無限回繰り返すwhile tureを用いたプログラムになっ
ている。ifを用いてexitのように文字を入力するとbreakできる仕組みになって
 いる。今回は最大8回分のレポートの点数を入力するため、条件elsifで8回目で
終えるようになっている。

 8点よりも高い点数になった場合、本当にそうなのか質問する文章をいれた。も
う一度gets.chomp!を使って文字を入力するようにした。点数がマイナスになる
ときも含め、redoで再入力させることができる。

5.感想
どこでbreakやendをいれるのかよく理解できていなかった。whileを利用するの
は前回の復習となっていた気がする。まだわかっていないところが多いため、復
習に?勉めていきたい。