1.問題1と2

2.
#!/usr/koeki/bin/ruby
# -*- coding: utf-8 -*-
at = 0
rp = 0
while line = gets
  if /\S+\s+(\S+)\s+(\S+)/=~ line
    attend = $1.to_f
    report =  $2.to_f
    #p attend, report
  end
  at += attend
  rp += report
  total = at + rp
end
#p at,rp
#p total
printf("合計点は%.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



#!/usr/koeki/bin/ruby
# -*- coding: utf-8 -*-
atte=0
at=0
rp=0

while line = gets
  if /\S+\s+(\S+)\s+\S+/=~ line
    attend = $1
     #p attend
  end
  if attend == "出席"
    at =2
  elsif  attend =="遅刻"
    at =1
  elsif attend == "欠席"
    at =0
  end
  #p at
  atte +=at
  if /\S+\s+\S+\s+([0.1-9.9]+)/=~ line
    report =$1.to_f
    #p report
    rp += report
  end
end
#p atte
#p rp
 total= atte +rp
printf("合計得点は%.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.
合計点は69.0点です。
評価は可です。


合計得点は69.0点です。
評価は可です。

4.
問題1
1、2行目	おまじない。
3、4行目	at,rp=0は11、12行目の計算が0から始まるようにするため。
5行目		データを読みこむwhile line=gets
6行目		後方参照。\S+は空白以外。\s+は空白を表す。取りだしたい出席点
		とレポート点の正規表現を()でくくる。
7、8行目	出席点はattendレポート点はreportとし、それぞれ1番目の()2
		番目の()が代入されるよう$1、$2を指定。実数が入るよう.to_fを
		つけた。
9行目		後方参照がちゃんとできているのかpで確認した。
10行目		後方参照のifのend。
11、12、13行目	atは出席点の合計、rpはレポート点の合計を計算、totalで合
		計の出席点とレポート点を合わせた。
14行目		whileのend。
15,16行目	11、12、13行目の確認。
17行目		合計点の結果。
18〜28行目	成績評価を出すif。前回のレポートの成績評価のifとほぼ同じ。
		数の大きい点から判断するようになっている。


問題2
1、2行目	おまじない。
3行目		atte=0で19行目の計算が0から始められるようにしている。
4、5行目	rpは問題1の4行目と同様。今回のatは合計ではなくそれぞれの
		出席点を表すことになっている。
6行目		データを読みこむwhile line=gets。
7行目		後方参照。出席点が点数では無いのでlineのみ。
8行目		1番目の()があてはまるようにattendを$1に指定。
9行目		確認。
10行目		後方参照のifのend。
11〜17行目	それぞれ出席だったら2点、遅刻は1点、欠席は0点と見なすよ
		うatで代入されるように条件づけた。
18行目		確認。
19行目		出席点の合計を計算。atteが出席点全体の合計を表す。
20行目		レポート点の後方参照。小数点も認識されるよう[0.1-9.9]で
		指定。
21行目		reportが1番目の()があてはまるように$1に指定。
22行目		確認。
23行目		rpでレポート点の合計を計算。
24行目		後方参照のifのend。
25行目		whileのend。
26、27行目	確認。
28行目		合計点の計算。
29行目		合計点の結果。
30〜40行目	問題1と同様。


5.
問題1、2どちらも難しくはなかった。問題2は1と同様にレポート点は$2で指定しようとも思ったが書き変えたりするときに分かりづらそうだと思い出席点とレポート点を別々な正規表現から後方参照するようにした。最初にktermで確認して問1と2が結果が全く同じで少し合ってるのか心配した。
問題3も取り組んでみようとした?が、合計点の配列を作る段階で、配列はできたが各点数の区切れが分からなくなってしまい並べ変えができなくて断念した。


7.7、