Với giải Vận dụng 2 trang 136 Tin học lớp 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:
Giải bài tập Tin học lớp 11 Bài 29: Thực hành thiết kế chương trình theo mô đun
Vận dụng 2 trang 136 Tin học 11: 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:
Lời giải:
# Đọc dữ liệu từ tệp điểm thi
with open("diemthi.inp", "r") as file:
data = file.readlines()
# Tạo danh sách lưu thông tin điểm thi của các thí sinh
scores = []
for line in data:
line = line.strip().split()# Tách dữ liệu trên mỗi dòng thành các từ
sbd = line[0]# Lấy số báo danh của thí sinh
diem1 = int(line[1])# Lấy điểm bài 1
diem2 = int(line[2])# Lấy điểm bài 2
diem3 = int(line[3])# Lấy điểm bài 3
tong_diem = diem1 + diem2 + diem3# Tính tổng điểm
scores.append((sbd, diem1, diem2, diem3, tong_diem))# Thêm thông tin vào danh sách
# Sắp xếp danh sách giảm dần theo tổng điểm
scores.sort(key=lambda x: x[4], reverse=True)
# Ghi kết quả vào tệp ketqua.out
with open("ketqua.out", "w") as file:
for score in scores:
sbd = score[0]
diem1 = score[1]
diem2 = score[2]
diem3 = score[3]
tong_diem = score[4]
file.write(f"{sbd}\t{diem1}\t{diem2}\t{diem3}\t{tong_diem}\n")
Xem thêm lời giải bài tập Tin học lớp 11 Kết nối tri thức hay, chi tiết khác:
Xem thêm các bài giải SGK Tin học lớp 11 Kết nối tri thức hay, chi tiết khác: