Hãy chỉnh sửa lại chương trình trên nêu bổ sung thêm điều kiện sau vào nhiệm vụ

164

Với Luyện tập 1 trang 136 giải SGK Tin học 11 Kết nối tri thức chi tiết trong Bài 29: Thực hành thiết kế chương trình theo mô đun giúp học sinh dễ dàng xem và so sánh lời giải, từ đó biết cách làm bài tập Tin học 11. Mời các bạn đón xem:

Hãy chỉnh sửa lại chương trình trên nêu bổ sung thêm điều kiện sau vào nhiệm vụ

Luyện tập 1 trang 136 Tin học 11: Hãy chỉnh sửa lại chương trình trên nêu bổ sung thêm điều kiện sau vào nhiệm vụ: Trong tệp kết quả đầu ra, thứ tự các vận động viên được ghi theo thứ tự giảm dần của điểm đánh giá.

Lời giải:

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)

Đánh giá

0

0 đánh giá