基本プログラミングのrubyの課題を作ってもなかなか動きません。これを
基本プログラミングのrubyの課題を作ってもなかなか動きません。これをどうやったら動くようになるでしょうか??何がダメなんでしょう?教えてください・・!(>_<;))
【問題】
問題1-3 についてはプログラムcreate data.rbを一度実行して作られるファイルmarks2010 を元に取り組むこと.ただし,create data.rb は実行する毎に異なるデータを出力するので,課題で作成する提出ファイル(results2010 等) 作成では,
同一のmarks2010 を用いること.また,使用したmarks2010 を提出すること.
1. ファイルmarks2010 は1000 行からなるデータであり,各行は次のように,学生氏名,10 回分
の試験成績が記されている:
"西郷あかり": 50, 33, 67, 64, 47, 27, 42, 51: 45
ただし,受験回数が10 回に満たない者もある.また,最終試験を受けた場合,その成績は行
の最後にコロン「:」の後に記載してある.
このファイルから下の基準で各学生の最終成績(点数) を求め,全員の最終成績をファイル
(results2010 1) に保存するプログラムを書きなさい(prog1.rb).
>ruby prog1.rb marks2010
を実行すると,ファイルresults2010 1 が作成されるようにする.ただし,結果のファイル
は,各行一人の氏名と成績を次のように記述したものとする: "西郷あかり": 47.3
※成績は小数点以下第一位まで.それ以下は四捨五入.
成績基準: 全試験(最終試験も含む) の平均点
また,60.0 点以上を合格として,合格者の氏名と本人の最終成績が記されたファイルpassed2010 1
を作成しなさい.
2. 上と同じファイルmarks2010 に対して,次の基準を用いて前問と同様のことを行いなさい.た
だし,提出ファイル名は,(prog2.rb), (results2010 2) および(passed2010 2)
? 成績基準:欠席は2 回まで認め,それ以上の欠席の試験は0 点とした平均点※
? 60 点以上が合格
※つまり,試験を3回欠席した場合,全10 回の試験のうち,2回の欠席が認められ,残り1
回の欠席は得点0 と計算される.したがって,試験は8回受けたこととして計算され,実際に
受験した7回分の得点と,実際には受けていない1回分の成績0 点の合計点を8 で割った平均
点が最終成績となる.
【私の作ったプログラム】
infile=open("marks2010","r")
outfile=open("results2010 1","w")
while data=file.gets split(/[:,]/)
print data,\n
end
arry=file.gets
s=0
arry.each{ |i|
s=s+i
}
puts s.to_f/arry.size
end
infile=close
outfile=close
ちゃんと名前と平均が出ると思ったんですけど・・・・(T_T)泣
補足
出来たらコード作成してください