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回目の入力で終了するという条件が加わる。
< 感想 >
条件が増えていくとプログラムも複雑になっていき、難しいと感じた。
< 参考にした人 >
遠藤麻佑さん