Trong một kì thi Tin học trẻ, mỗi học sinh sẽ phải làm 3 bài thi. Với mỗi bài, nêu học sinh làm sẽ được ban giám khảo chấm và cho điểm, nếu không làm thì sẽ không tính điểm. Sau khi thi, dữ liệu điểm thi của học sinh sẽ được lưu trong một tệp văn bản và gửi về ban tổ chức. Mẫu một tệp điểm thi có dạng sau:Quy định ghi trong tệp trên như sau:- Mỗi dòng sẽ bắt đầu bằng số báo danh của thí sinh, tiếp theo là ba giá trị điểm tương ứng với ba bài thì.- Điểm thi sẽ là một số tự nhiên từ 0 đến 20.- Nếu...
Đọc tiếp
Trong một kì thi Tin học trẻ, mỗi học sinh sẽ phải làm 3 bài thi. Với mỗi bài, nêu học sinh làm sẽ được ban giám khảo chấm và cho điểm, nếu không làm thì sẽ không tính điểm. Sau khi thi, dữ liệu điểm thi của học sinh sẽ được lưu trong một tệp văn bản và gửi về ban tổ chức. Mẫu một tệp điểm thi có dạng sau:
Quy định ghi trong tệp trên như sau:
- Mỗi dòng sẽ bắt đầu bằng số báo danh của thí sinh, tiếp theo là ba giá trị điểm tương ứng với ba bài thì.
- Điểm thi sẽ là một số tự nhiên từ 0 đến 20.
- Nếu học sinh không làm thì bài đó ghi -1.
Em có nhiệm vụ tính toán tổng só điểm thi của các bạn học sinh và đưa dữ liệu ra tệp ketqua.out là danh sách ba bạn có tổng điểm cao nhất được sắp xếp giảm dần từ trên xuống đưới. Khuôn dạng dữ liệu đưa ra bao gồm: số báo danh, các điểm thi từng bài và cuối cùng là tổng điểm cả ba bài.
Ví dụ với dữ liệu trên thì kết quả như sau:
Tham khảo:
def nhapDL(finp):
f = open(finp)
A = []
B = []
for line in f:
s = line.split()
A.append(s[0])
temp = s[1:len(s)]
temp = [float(x) for x in temp]
B.append(temp)
f.close()
return A, B
def diem_gk(d):
diem = sum(d) + d[0] + d[len(d) - 1]
diem = diem / (len(d) + 2)
return round(diem, 2)
def xuly(B):
kq = []
for i in range(len(B)):
diem = diem_gk(B[i])
kq.append(diem)
return kq
def ghiDL(fout, A, B):
f = open(fout, "w")
A, B = zip(*sorted(zip(A, B), key=lambda x: x[1], reverse=True))
for i in range(len(A)):
print(A[i], B[i], file=f)
f.close()
finp = "seagames.inp"
fout = "ketqua.out"
DS, Diem = nhapDL(finp)
Kq = xuly(Diem)
ghiDL(fout, DS, Kq)
Trả lời bởi Time line