1. 1番
2.
#!/usr/koeki/bin/ruby
# -*- coding: utf-8 -*-
number = []
shusseki = []
score =[]
sum = 0
n = 0
i = 0
while line = gets
if /(\S+)\s+(\S+)\s+(\S+)/ =~ line
number[n] = $1
shusseki[n] = $2.to_f
score[n] = $3.to_f
sum += $2.to_f + $3.to_f
n += 1
end
end
print"- 授業回数 ------ 出席点 ---- 得点 - \n"
while i < number.length
printf(" %-5s \t %2d \t %6.1f\n",
number[i],shusseki[i],score[i])
i += 1
end
printf("合計得点:%4.1f点\n",sum)
if sum >=90
print"評価:秀\n"
elsif sum >=80 && sum < 90
print"評価:優\n"
elsif sum >=70 && sum < 80
print"評価:良\n"
elsif sum >=60 && sum < 70
print"評価:可\n"
else sum < 60
print"評価:不可\n"
end
3.
sime{c11xxxx}% ./report5.rb result1.txt [~/program]
- 授業回数 ------ 出席点 ---- 得点 -
回数 0 0.0
第1回 2 0.0
第2回 2 0.0
第3回 0 6.5
第4回 2 7.0
第5回 2 8.0
第6回 2 6.0
第7回 1 7.5
第8回 0 0.0
第9回 2 7.0
第10回 1 6.0
第11回 1 0.0
第12回 2 0.0
第13回 0 0.0
第14回 2 0.0
第15回 2 0.0
合計得点:69.0点
評価:可
4.
データをこれから入力するので[]を空欄にし合計(sum)や何番目の数(n.i)の初期
値を0に設定する。
データの行がそれぞれ「数値、空欄、数値、空欄、数値」と並んでるので「S、s、
S、s、S」で認識させるようにし、それぞれを$で変数にし、計算させるようにし
た。
最後にデータと結果と評価を列ずつで出すようにprintfを使って書いた。
5.
最初は2番のプログラムを組んでいたが、直し続けていくたびにどのように書き直
せば良いのか分からなくなり、基本的な1番と比べ続けたが分からなかったので
悔しいが1番で提出することにした。
早く正解例を見てどこがいけなかったのか知りたい。
6.
「8. エラーと例外 ― Python 3.7.3 ドキュメント」
(https://docs.python.org/ja/3/tutorial/errors.html)
7.