Bài tập  /  Bài đang cần trả lời

Vào dịp tổng kết năm học, nhà trường tổ chức khen thưởng cho các học sinh đạt hạng Nhất, Nhì, Ba trong toàn trường với những phần thưởng đặc biệt và muốn biết điểm số có phá kỉ lục điểm của năm học trước hay không

----- Nội dung dịch tự động từ ảnh -----
Vào dịp tổng kết năm học, nhà trường tổ chức khen thưởng cho các học sinh đạt hạng Nhất, Nhì, Ba trong toàn trường với những phần thưởng đặc biệt và muốn biết điểm số có phá kỉ lục điểm của năm học trước hay không. Số học sinh được các lớp đề nghị khen thưởng rất nhiều nên nhà trường cần xét chọn lại. Việc xét hạng theo nguyên tắc: Các học sinh bằng điểm thì đồng hạng và không có thứ hạng kế tiếp. Chẳng hạn: Có 3 học sinh đồng hạng Nhất thì không có học sinh hạng Nhì, hạng Ba. Có 2 học sinh đồng hạng Nhì thì không có học sinh hạng Ba.
- Yêu cầu: Cho trước kỉ lục điểm năm học trước là K, số lượng học sinh đề nghị
khen thưởng là N, các điểm số tương ứng là: ai, a2, ..., ÔN
a) Xét xem điểm số của học sinh có phá kỉ lục điểm năm học trước hay không?
Nếu phá kỉ lục điểm thì tính số điểm vượt kỉ lục, nếu không phá kỉ lục điểm thì ghi số 0.
b) Thống kê số lượng học sinh đạt hạng Nhất, số lượng học sinh đạt hạng Nhì,
số lượng học sinh đạt hạng Ba và điểm số tương ứng của thứ hạng đó.
1 trả lời
Hỏi chi tiết
320
1
0
thảo
14/05/2023 14:01:17
+5đ tặng

Để giải quyết bài toán này, chúng ta có thể sử dụng các bước sau:

  1. Đọc kỉ lục điểm năm học trước (K) và số lượng học sinh đề nghị khen thưởng (N) từ tệp văn bản.
  2. Đọc danh sách điểm số của N học sinh (a1, a2, ..., aN) từ tệp văn bản.
  3. Tính số điểm vượt kỉ lục (số điểm cao hơn K):
    • Khởi tạo biến vượt_kỉ_lục bằng 0.
    • Duyệt qua danh sách điểm số a1, a2, ..., aN:
      • Nếu ai > K, tăng giá trị của vượt_kỉ_lục lên 1.
  4. Kiểm tra xem có điểm số vượt kỉ lục hay không:
    • Nếu có, ghi số điểm vượt kỉ lục vào tệp văn bản.
    • Nếu không, ghi số 0 vào tệp văn bản.
  5. Sắp xếp danh sách điểm số theo thứ tự giảm dần.
  6. Thống kê số lượng học sinh đạt hạng Nhất, hạng Nhì, hạng Ba và điểm số tương ứng:
    • Khởi tạo các biến dem_nhất, dem_nhì, dem_ba bằng 0.
    • Duyệt qua danh sách điểm số a1, a2, ..., aN:
      • Nếu i = 1, tăng giá trị dem_nhất lên 1 và ghi điểm số ai vào tệp văn bản.
      • Nếu i = 2, tăng giá trị dem_nhì lên 1 và ghi điểm số ai vào tệp văn bản.
      • Nếu i = 3, tăng giá trị dem_ba lên 1 và ghi điểm số ai vào tệp văn bản.
  7. Ghi số lượng học sinh đạt hạng Nhất, hạng Nhì, hạng Ba và điểm số tương ứng vào tệp văn bản.
b)
# Đọc K và N từ tệp văn bản
with open('KHENTHUONG.INP', 'r') as file:
    K = int(file.readline().strip())
    N = int(file.readline().strip())

# Đọc danh sách điểm số của N học sinh
diem_so = []
with open('DIEM.INP', 'r') as file:
    for _ in range(N):
        diem = int(file.readline().strip())
        diem_so.append(diem)

# Tính số điểm vượt kỉ lục
vuot_ki_luc = 0
for diem in diem_so:
    if diem > K:
        vuot_ki_luc += 1

# Ghi số điểm vượt kỉ lục
 

Mở khóa để xem toàn bộ nội dung trả lời

(?)
Bạn đã đạt đến giới hạn của mình. Bằng cách Đăng ký tài khoản, bạn có thể xem toàn bộ nội dung trả lời
Cải thiện điểm số của bạn bằng cách đăng ký tài khoản Lazi.
Xem toàn bộ các câu trả lời, chat trực tiếp 1:1 với đội ngũ Gia sư Lazi bằng cách Đăng nhập tài khoản ngay bây giờ
Tôi đã có tài khoản? Đăng nhập

Bạn hỏi - Lazi trả lời

Bạn muốn biết điều gì?

GỬI CÂU HỎI
Học tập không giới hạn cùng học sinh cả nước và AI, sôi động, tích cực, trải nghiệm
Bài tập Tin học Lớp 8 mới nhất

Hôm nay bạn thế nào? Hãy nhấp vào một lựa chọn, nếu may mắn bạn sẽ được tặng 50.000 xu từ Lazi

Vui Buồn Bình thường

Học ngoại ngữ với Flashcard

×
Gia sư Lazi Gia sư
×
Trợ lý ảo Trợ lý ảo