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.添付ファイル