C10-04 · Tìm theo tên

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ẽ), 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 HOA viết hoa vẫn khớp Hoang (Bach) và Hoai (Nam) vì so không phân biệt hoa thường; Le Minh Duc không chứa hoa. Bach được 0,4 × 6,5 + 0,6 × 7,0 = 6,8 (C), Nam 7,8 (B).
  • Ví dụ 2 (bổ sung): Tran Thi Hoa có tên chứa hoa nhưng mã 2301009 chỉ 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: (***)


Đang tải...