C10-04 · Tìm theo tên
Xem dạng PDFĐề
Đọc danh sách lớp theo khung XS-07 (dòng mã sai bị bỏ qua lặng lẽ), sau đó là một dòng chứa từ khóa (một từ, không dấu). In theo thứ tự nhập mọi sinh viên có họ tên chứa từ khóa, so khớp không phân biệt hoa thường, mỗi người một dòng dạng ma Ho Ten diem_hp loai (như C10-01). Không có ai thì in KHONG TIM THAY.
"Chứa" nghĩa là từ khóa xuất hiện ở bất kỳ vị trí nào trong họ tên (đầu, giữa hay cuối một từ): hoa khớp Hoang, Hoai, Hoa. Chỉ tìm trong họ tên (đã chuẩn hóa), không tìm trong mã, điểm hay chữ loại.
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). - Dòng cuối: từ khóa.
Kết quả
Các dòng của sinh viên khớp, theo thứ tự nhập; hoặc một dòng KHONG TIM THAY.
Ràng buộc
- 0 ≤ n ≤ 1000.
- Từ khóa: 1–20 chữ cái Latin (không dấu cách), hoa thường tùy ý.
- 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.
Gợi ý
Đưa cả từ khóa lẫn họ tên về cùng một kiểu chữ (lower(), mục 7.2) rồi dùng toán tử in của chuỗi (mục 7.3). Viết thành hàm tim_theo_ten(ds_sv, tu_khoa) trả về list dòng như bang_diem — hàm này sẽ dùng lại ở C10-06.
Ví dụ 1
Dữ liệu vào:
3
23010007 Do Hoang Bach 6.5 7.0
23010003 Le Minh Duc 8.0 8.8
23010008 Nguyen Hoai Nam 9 7
HOA
Kết quả:
23010007 Do Hoang Bach 6.8 C
23010008 Nguyen Hoai Nam 7.8 B
Ví dụ 2
Dữ liệu vào:
3
23010007 Do Hoang Bach 6.5 7.0
2301009 Tran Thi Hoa 9 9
23010003 Le Minh Duc 8.0 8.8
hoa
Kết quả:
23010007 Do Hoang Bach 6.8 C
Giải thích ví dụ
- Ví dụ 1 (ví dụ của sách): từ khóa
HOAviết hoa vẫn khớpHoang(Bach) vàHoai(Nam) vì so không phân biệt hoa thường;Le Minh Duckhông chứahoa. Bach được 0,4 × 6,5 + 0,6 × 7,0 = 6,8 (C), Nam 7,8 (B). - Ví dụ 2 (bổ sung):
Tran Thi Hoacó tên chứahoanhưng mã2301009chỉ có 7 chữ số nên dòng đó đã bị bỏ khi đọc — không được in. Chỉ còn Bach khớp.
Nguồn trong sách: Bài C10-04, 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: (***)