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

total = 0
number = 1

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


while number <= 8
   printf("%d回目のレポートの得点を入力して下さい。\n", number)
   score = gets.chomp!.to_f
   total += score
   number += 1
end

average = total / 8

printf("8回分のレポートの合計は%.1f点です。\n",total)
printf("8回分のレポートの平均は%.1f点です。\n",average)

2.プログラム(1)の実行結果
sime{c118xxx}% ./report2a.rb                                        [~/program]
8回分のレポートの合計得点を求めます。
1回目のレポートの得点を入力して下さい。
6
2回目のレポートの得点を入力して下さい。
6  
3回目のレポートの得点を入力して下さい。
5
4回目のレポートの得点を入力して下さい。
6.7
5回目のレポートの得点を入力して下さい。
5.6
6回目のレポートの得点を入力して下さい。
7.8
7回目のレポートの得点を入力して下さい。
5
8回目のレポートの得点を入力して下さい。
8
8回分のレポートの合計は50.1点です。
8回分のレポートの平均は6.3点です。


3.プログラム(1)の説明
1と2行目:おまじない、必ず書く。
   3行目:total(合計点)の初期値を0に設定。
   4行目:number(レポートの回数)の初期値を0に設定。
   5行目:printメソッドで""内を表示し、何が出来るプログラムか理解させる。
   6行目:while文のはじまり。
        numberの値が8以上になったら、繰り返しが終了するように設定。
   7行目:printメソッドで""内を表示し、各回数のレポートの得点を入力して
        もらう。
   8行目:得点を実数として受け取る。
   9行目:加算代入によって、total(全体の合計点)の現在の値に
         score(各回数の得点)を加算する。
  10行目:加算代入によって、number(レポートの回数)の現在の値に1を加算する。
  11行目:while文を終了する。
  12行目:レポートの平均を求めるため、total(全体の合計)割る8(レポートの
       回数)をする。
  13行目:printfメソッドで""内を表示し、total(全体の合計点)を小数第一位まで表
         示する
  14行目:printfメソッドで""内を表示し、average(平均点)を表示する。
4.作成したプログラム(2)
#!/usr/koeki/bin/ruby
# -*- coding: utf-8 -*-

sum = 0
ninzu = 0

while line = gets
  sum += line.to_f
  ninzu += 1
end

average = sum / ninzu
printf("合計の値は%dです。\n",sum)
printf("酒田市の人口は%d人です。\n",ninzu)
printf("酒田市の平均年齢は%.1f歳です。\n",average)

5.プログラム(2)の実行結果
sime{c118xxx}% ruby report2b.rb population.csv                      [~/program]
合計の値は5389434です。
酒田市の人口は113343人です。
酒田市の平均年齢は47.0歳です。

6.プログラム(2)の説明
1・2行目:おまじない、必ず書く。
   3行目:sum(合計の値)の初期値を0に設定。
   4行目:ninzu(酒田市の人口)の初期値を0に設定。
   5行目:while文のはじまり。変数lineにpopulation.csvのデータを代入する。
	読みこめる間は繰り返し処理を行うように設定。
   6行目:加算代入によって、sum(合計の値)に変数lineの値を代入。to_fを付け、デー
	タの値を実数として受け取る。
   7行目:ninzu(人数)を求めるため加算代入を使って、一行(一人分の値)ずつ1
	を足し算をしていく。
   8行目:while文が終了。
   9行目:average(平均年齢)を求めるため、sum(合計の値)割るninzu(酒田市の
	人口)を計算する。
  10行目:printfメソッドで""内を表示し、sum(合計の値)を表示する。
  11行目:printfメソッドで""内を表示し、ninzu(酒田市の人口)を表示する。
  12行目:printfメソッドで""内を表示し、average(平均年齢)を表示する。
  
7.感想
 今回は難しい課題だと聞いて、早めにとりかかろうと思い、さっそく終わらせ
ました。授業で他の人のプログラムの説明をみて、私の前回のレポートでは不
充分だと感じたので、今回はなるべく詳しく書きました。時間はかかりましたが、
理解力がより高まったので、やってよかったです。
 2つ目の課題は、人口の求め方が難しかったのですが、やわらかい頭になって授
業で作成したプログラムや授業の資料をみて試行?錯誤していたら、自力でも上手くいったのでよかったです。
 理解が深まると、難しいプログラミングも楽しくなって来ました。これからもっ
と難しいものに出逢うと思うので、このモチベーションをたもったまま頑張り
たいです。
8.参考文献
  授業用ページ
9.添付ファイル