提出課題:06回目レポート
本文:
1.
2番
2.
#!/usr/koeki/bin/ruby
# -*- coding: utf-8 -*-
total = 0
while line=gets
if /\S\d\S\s+(\S+)\s+(\S+)/i =~ line
syukketu = $1
report = $2
if $1 == "出席"
syukketu = 2
elsif $1 == "遅刻"
syukketu = 1
else $1 == "欠席"
syukketu = 0
end
total += syukketu.to_f + $2.to_f
print line
end
end
printf("合計得点は%7.1f点です\n",total)
if total >= 90
print "秀\n"
elsif total >= 80
print "優\n"
elsif total >= 70
print "良\n"
elsif total >= 60
print "可\n"
else
print "不可\n"
end
3.
第1回 出席 なし
第2回 出席 なし
第3回 欠席 6.5
第4回 出席 7
第5回 出席 8
第6回 出席 6
第7回 遅刻 7.5
第8回 欠席 未提出
第9回 出席 7
第10回 遅刻 6
第11回 遅刻 なし
第12回 出席 なし
第13回 欠席 なし
第14回 出席 なし
第15回 出席 なし
合計得点は 69.0点です
可
4.
(7)ファイルのデータを一行ずつ代入する
(8)データの通りに正規表現を書き、出欠とレポートの必要なデータを( )を囲う。=~で正規表現にあったものが表示されるようにする
(9)( )で囲んだ1つ目のデータ、$1が出欠であることをしめす
(10)( )で囲んだ2つ目のデータ、$2がレポート点であることを示す
(11~17)if _endで出席の場合、2点遅刻の場合、1点欠席の場合、0点であることを設定する
(20)合計点を計算する。.to_f をつけて文字列を数字にする。このときにレポートのなしや未提出は数字として起こせないため0点になる
(21)ファイルのデータを表示
(24)合計得点を表示
(28~38)合計点に合わせて評価が出るように設定する
5.
特定のデータを表示させようとするとき頭の柔らかさが必要だと思いました。
課題は出欠を点数に変えるのが一番難しくて、混乱してしまったので、どのデータにどの名前をつけてプログラムしているのかはっきりさせて作ることが大切だと感じました。
添付:
kensaku.rb