1番を実行しました。 プログラム #!/usr/koeki/bin/ruby # -*- coding: utf-8 -*- total = 0 while line = gets if /\S+\s+(\d)\s+(\d+(\.\d+)?)/ =~ line syusseki = $1.to_i repo= $2.to_f total += syusseki + repo end end printf("合計得点は%4.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 実行結果 合計得点は69.0です。 可評価です 説明 最初の2行は魔法 total = 0、初期値は0にする。 while で繰り返しの指示。line = gets、今回はファイルを読みこませるので getsで終わり。 if /\S+\s+(\d)\s+(\d+(\.\d+)?)/ =~ lineの\Sは空白以外を表していて、\sは 逆に空白を表している。\dは0〜9までの数にマッチングする意味で、\.は任意の 一文字マッチしていて、?は直前の文字を繰り返すことを意味している。 syusseki = $1.to_i repo= $2.to_f この二つは、上のプログラミングにファイルを読ませて、 数を標記させている。$は数字の形で取り出すという後方 参照です。 total += syusseki + repo 出席点とレポート点を合計。 最後にprintf("合計得点は%4.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 この指示では、totalの点数の大きさによって評価を付ける。if endで当てはま るまで繰り返すように指示する。 参考文献 友だちのプログラミング(奥井君) 神田先生の基礎プログラミングのページ