Trang chủ Lớp 11 Tin học lớp 11 SGK Tin học 11 - Kết nối tri thức Luyện tập 1 Bài 29 (trang 132) Tin học 11: Hãy chỉnh...

Luyện tập 1 Bài 29 (trang 132) 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

Lời giải Luyện tập 1 Bài 29. Thực hành thiết kế chương trình theo mô đun (trang 132) – SGK Tin học 11 Kết nối tri thức. Hướng dẫn: Dựa vào hướng dẫn của Nhiệm vụ trang 132-135 SGK kết hợp kiến thức thực tế của bản thân để.

Câu hỏi/Đề bài:

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)