C10-02 · Thống kê lớp

Xem dạng PDF

Gửi bài giải

Điểm: 1,00
Giới hạn thời gian: 2.0s
Giới hạn bộ nhớ: 256M
Input: stdin
Output: stdout

Tác giả:
Nguồn bài:
Sách "Lập trình cơ sở với Python"
Dạng bài
Ngôn ngữ cho phép
Python

Đề

Đọc danh sách lớp theo khung XS-07 (dòng mã sai bị bỏ qua lặng lẽ). In năm dòng thống kê như lệnh THONGKE của chương trình quản lý điểm: lần lượt A so, B so, C so, D so, F so — số sinh viên của từng loại, kể cả loại không có ai (in 0). Sau đó in một dòng gồm hai giá trị cách nhau một dấu cách:

  • số sinh viên đạt — sinh viên có loại khác F (điểm học phần ≥ 4,0);
  • trung bình các điểm học phần, in đúng 2 chữ số thập phân (:.2f).

Điểm học phần là giá trị tinh_diem_hp trả về — đã làm tròn 1 chữ số thập phân — và cả xếp loại, xét đạt, lấy trung bình đều dùng giá trị đã làm tròn này. Không có sinh viên nào thì năm dòng đều là 0 và dòng cuối là 0 0.00.

Dữ liệu vào

  • Dòng đầu: số nguyên n.
  • n dòng tiếp theo, mỗi dòng dạng ma ho ten diem_qt diem_ck (như C10-01).

Kết quả

Sáu dòng: năm dòng thống kê theo thứ tự A, B, C, D, F; dòng thứ sáu là so_dat trung_binh.

Ràng buộc

  • 0 ≤ n ≤ 1000.
  • Mã: 1–12 ký tự, chỉ gồm chữ số và chữ cái Latin; hợp lệ khi gồm đúng 8 chữ số. Các mã hợp lệ không trùng nhau.
  • Họ tên: 1–10 từ, mỗi từ 1–20 chữ cái Latin không dấu, hoa thường tùy ý; giữa các phần có thể có nhiều dấu cách.
  • Mỗi điểm trong đoạn [0; 10], dạng số nguyên hoặc một chữ số thập phân, dấu chấm hoặc dấu phẩy.
  • Dữ liệu bảo đảm trung bình (tính đúng) không rơi đúng vào giữa hai giá trị 2 chữ số thập phân, nên mọi cách cộng đúng đều in ra cùng kết quả.

Gợi ý

Dùng lại thong_ke và dem_theo_loai (mục 10.3.1): thong_ke duyệt chuỗi "ABCDF" chứ không duyệt dict đếm, nên loại không có ai vẫn được in 0 và thứ tự luôn A → F. Nhớ trường hợp không có ai: không được chia cho 0.

Ví dụ 1

Dữ liệu vào:

6
23010001 Nguyen Van An 7.5 8.0
23010002 Tran Thi Binh 6.5 7.0
23010003 Le Minh Duc 8.0 8.8
23010004 Pham Quoc Dung 4.0 4.0
23010005 Hoang Gia Han 5.0 3.0
23010006 Vu Ngoc Khanh 10.0 10.0

Kết quả:

A 2
B 1
C 1
D 1
F 1
5 6.82

Ví dụ 2

Dữ liệu vào:

0

Kết quả:

A 0
B 0
C 0
D 0
F 0
0 0.00

Giải thích ví dụ

  • Ví dụ 1 là sáu ca chuẩn Ca 1–6 của sách. Điểm học phần đã làm tròn: An 7,8 (B), Binh 6,8 (C), Duc 8,48 → 8,5 (A), Dung 4,0 (D), Han 3,8 (F), Khanh 10,0 (A). Có 5 người đạt (trừ Han). Trung bình = (7,8 + 6,8 + 8,5 + 4,0 + 3,8 + 10,0) / 6 = 40,9 / 6 = 6,8166… → 6.82.
  • Nếu lấy trung bình trên điểm chưa làm tròn (8,48 thay cho 8,5) thì được 40,88 / 6 = 6,8133… → 6.81, sai.
  • Ví dụ 2: không có ai nên mọi loại đều 0 và dòng cuối 0 0.00.

Nguồn trong sách: Bài C10-02, mục 10.5, giáo trình Lập trình cơ sở với Python — TS. Nguyễn Quốc Long · Mức: (**)


Đang tải...