XS-01 · Tính điểm học phần
Xem dạng PDFĐề
Đây là phần đầu tiên của bài toán xuyên suốt "Điểm học phần": mỗi chương từ 2 đến 9 thêm một phần, đến Chương 10 thành một chương trình quản lý điểm hoàn chỉnh.
Đọc điểm quá trình và điểm cuối kỳ của một sinh viên, in điểm học phần theo công thức
$$\text{điểm học phần} = 0{,}4 \times \text{điểm quá trình} + 0{,}6 \times \text{điểm cuối kỳ},$$
lấy 1 chữ số thập phân.
Kiến thức dùng (Chương 2): biến, float(), biểu thức số học, đọc hai giá trị trên một dòng bằng a, b = input().split(), in số thực bằng f-string :.1f.
Dữ liệu vào
Một dòng gồm hai số thực diem_qt diem_ck — điểm quá trình và điểm cuối kỳ — cách nhau một dấu cách.
Kết quả
Một dòng: điểm học phần, viết với đúng 1 chữ số thập phân (ví dụ 7.8, 10.0, 0.0), dùng dấu chấm thập phân, không in nhãn hay lời nhắc.
Ràng buộc
- ~0 \le~
diem_qt,diem_ck~\le 10~. - Mỗi điểm viết dạng số nguyên (
7,10) hoặc có đúng một chữ số thập phân (7.5,10.0), dùng dấu chấm. - Vì vậy điểm học phần chưa làm tròn luôn là bội của ~0{,}02~: không bao giờ có đuôi kiểu ~x{,}x5~, nên "lấy 1 chữ số thập phân" không có trường hợp mơ hồ.
Ví dụ
Dữ liệu vào:
7.5 8.0
Kết quả:
7.8
Giải thích ví dụ
~0{,}4 \times 7{,}5 + 0{,}6 \times 8{,}0 = 3{,}0 + 4{,}8 = 7{,}8~, in với một chữ số thập phân là 7.8.
Hai ca khác nên tự chạy thử trước khi nộp (lấy từ bộ sinh viên mẫu của sách):
| Dữ liệu vào | Kết quả | Vì sao đáng thử |
|---|---|---|
6.5 7.0 |
6.8 |
trong máy, ~2{,}6 + 4{,}2~ cho 6.800000000000001; phải in bằng :.1f |
8.0 8.8 |
8.5 |
~8{,}48~ lấy 1 chữ số thập phân là 8.5 (làm tròn, không cắt) |
10 10 |
10.0 |
điểm viết dạng số nguyên vẫn đọc bằng float(), kết quả vẫn in một chữ số thập phân |
Lưu ý khi nộp
- Dùng
input()không lời nhắc;input("Nhap diem: ")in thêm chữ nên bị Wrong Answer. int("7.5")báo lỗi (Runtime Error) — điểm có thể lẻ, phải đọc bằngfloat().- Hai điểm nằm trên cùng một dòng: đọc bằng
input().split(), không phải hai lầninput(). - Bộ test gồm 5 nhóm: ví dụ của sách, ngẫu nhiên, giá trị biên (0 và 10), trường hợp đặc biệt và các "bẫy" nhắm vào lỗi hay gặp (in thô số thực, cắt bỏ thay cho làm tròn, đảo trọng số…).
Nguồn trong sách: Bài XS-01, mục 2.7, giáo trình Lập trình cơ sở với Python — TS. Nguyễn Quốc Long · Mức: XS (bài toán xuyên suốt, phần 1/8)