1.1番を実施


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

syusseki = 0
tensu = 0
sum = 0

while line = gets
  if /\S\d+\S\s+(\d+)\s+(\S+)/ =~ line
    syusseki += $1.to_i
    tensu += $2.to_f
  end
end

sum += syusseki + tensu

print"+----------+\n"
printf("出席点    %d点\n",syusseki)
printf("合計      %2.1f点\n",sum)
if sum >= 90
  print"評価      秀\n"
elsif sum >= 80
  print"評価      優\n"
elsif sum >= 70
  print"評価      良\n"
elsif sum >= 60
  print"評価      可\n"
else
  print"評価      不可\n"
end
print"+----------+\n"



3.プログラムの実行結果
+----------+
出席点    21点
合計      69.0点
評価      可
+----------+


4.プログラムの説明

 7行目の\Sは空白以外にマッチ、\d+は1つ以上の数字にマッチ、\Sは空白以外に
マッチ、\s+は1つ以上の空白にマッチ、(\d+)は1つ以上の数字にマッチ、\s+は
1つ以上の空白にマッチ、(\S+)は1つ以上の空白以外にマッチを表す。最初の/
と最後の/は正規表現であることを示している。
=~は正規表現にマッチするという比較演算子、lineは変数でファイルから読みこ
んだ行が入っている。

 8行目の$1は後方参照を表し、$を使うことで7行目の()でくくられた部分にマッ
チした部位を()の順番で数字の形で取り出すことができる。この行はto_iなので
値の型は整数で、9行目はto_fなので値の型は実数となる。



5.感想
 今回はスムーズにプログラムと説明が書けたと思う。今回は事前に講義内容を
予習していたので理解しながらできたと思う。