3番まで実施しました。 < 作成したプログラム > レポートの得点を入力して、合計得点と平均点を割り出すプログラム。 #!/usr/koeki/bin/ruby # -*- coding: utf-8 -*- total = 0 number = 1 print"レポートの合計得点を求めます。\n" while number <= 8 printf("%d回目のレポートの得点は?(終了はexitと入力): \n", number) score = gets.chomp! if score == "exit" break end total += score.to_f number += 1 heikin = total/(number-1) end printf("レポートの合計は%3.1fです。\n",total) printf("レポートの平均は%3.1fです。\n",heikin) < プログラムの実行結果 > レポートの合計得点を求めます。 1回目のレポートの得点は?(終了はexitと入力): 8 2回目のレポートの得点は?(終了はexitと入力): 7.5 3回目のレポートの得点は?(終了はexitと入力): 6 4回目のレポートの得点は?(終了はexitと入力): 7 5回目のレポートの得点は?(終了はexitと入力): 7.5 6回目のレポートの得点は?(終了はexitと入力): 5 7回目のレポートの得点は?(終了はexitと入力): 4 8回目のレポートの得点は?(終了はexitと入力): 6 レポートの合計は51.0です。 レポートの平均は6.4です。 < プログラムの説明 > 課題1では、14行目に平均を求めるための式(平均=合計/回数)を追加した。 (number-1)となっているのは、何回目かでexitと入力したときにその回分が計算 に含まれないようにするためである。 課題2では、6行目にwhile trueを用い、常に条件を満たすようにし、永久に繰り 返しが行われるようにした。しかし、途中で終了できるようにするために、9行 目に条件としてexitと入力したときに終了できるようにした。8行目で gets.chomp!に変更し、12行目のtotalの式のところでscore.to_fにすることで、 実数変換が可能になり計算できるようになる。ifでは条件を指定 し、10行目のbreakで繰り返しから抜け、end以下に進む。 課題3では、6行目をwhile trueからwhile number <= 8に変更した。これにより 繰り返しが8回目の入力で終了するという条件が加わる。 < 感想 > 条件が増えていくとプログラムも複雑になっていき、難しいと感じた。 < 参考にした人 > 遠藤麻佑さん