C1-09 · Tìm lỗi
Xem dạng PDFĐề
Chương trình dưới đây cần in điểm học phần của ca 1 (điểm quá trình 7,5, điểm cuối kỳ 8,0, công thức ~0{,}4 \times \text{quá trình} + 0{,}6 \times \text{cuối kỳ}~), tức 7.8, nhưng chạy không báo lỗi mà vẫn bị Wrong Answer:
print("Diem hoc phan:", 0,4 * 7.5 + 0,6 * 8.0)
Dự đoán dòng in ra, chỉ ra hai loại lỗi (một lỗi hình thức in, một lỗi viết số), rồi nộp bản đã sửa.
Dữ liệu vào
Không có. Chương trình không đọc dữ liệu: mọi giá trị đã viết sẵn trong mã nguồn (cách đọc dữ liệu từ bàn phím học ở mục 2.4).
Kết quả
Một dòng: điểm học phần của ca 1, đúng như Python in ra giá trị của biểu thức.
Ràng buộc
- Giữ công thức của bài toán điểm học phần (trọng số 0,4 và 0,6); chỉ sửa hai lỗi, không viết lại bằng số tính tay.
Lưu ý khi nộp
Hãy dự đoán trên giấy dòng mà chương trình gốc in ra trước khi chạy thử — đó là phần chính của bài. Hệ thống chỉ chấm bản đã sửa; in thẳng 7.8 tính tay vẫn được Accepted nhưng không đúng tinh thần bài (giảng viên kiểm tay).
Ví dụ
Dữ liệu vào:
Kết quả:
7.8
Giải thích ví dụ
Chương trình gốc in Diem hoc phan: 0 30.0 48.0. Hai lỗi:
- Lỗi viết số:
0,4và0,6dùng dấu phẩy thập phân. Với Python, dấu phẩy ngăn cách các giá trị đưa vàoprint, nênprintnhận bốn giá trị:"Diem hoc phan:",0,4 * 7.5 + 0(=30.0) và6 * 8.0(=48.0). - Lỗi hình thức in: nhãn
Diem hoc phan:mà đề không đòi (Lỗi thường gặp mục 1.5).
Bản sửa in 7.8: ~0{,}4 \times 7{,}5 + 0{,}6 \times 8{,}0 = 3{,}0 + 4{,}8 = 7{,}8~.
Nguồn trong sách: Bài C1-09, mục 1.7, giáo trình Lập trình cơ sở với Python — TS. Nguyễn Quốc Long · Mức: (**)