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を利用するの は前回の復習となっていた気がする。まだわかっていないところが多いため、復 習に?勉めていきたい。