Câu 22 · 22/22
Đề bài
Một cửa hàng bán vở giá 12 000 đồng/quyển. Nếu mua từ 10 quyển trở lên thì giảm 10 000 đồng trên tổng tiền của lần mua; dưới 10 quyển không giảm. Số lượng `n` là số nguyên từ 0 đến 100.
a) Nêu dữ liệu đầu vào và kết quả đầu ra.
b) Viết chương trình Python 3 đọc `n` từ bàn phím rồi in số tiền phải trả (đồng). Giả sử đầu vào đúng phạm vi, không cần xử lí nhập sai.
c) Cho biết số tiền phải trả khi n = 0, n = 9 và n = 10; giải thích vì sao cần thử mốc 10.
Hướng dẫn giải
Hướng dẫn đối chiếu (2,5 điểm):
a) Đầu vào: số nguyên n trong [0; 100]. Đầu ra: số tiền phải trả sau khi áp dụng quy tắc giảm giá. (0,5 điểm: mỗi ý 0,25.)
b) Một chương trình tham khảo:
```python
n = int(input())
tien = 12000 * n
if n >= 10:
tien = tien - 10000
print(tien)
```
(1,25 điểm: nhập/chuyển kiểu đúng 0,25; tính tiền ban đầu 0,25; điều kiện và giảm đúng 0,5; in kết quả 0,25.)
c) n = 0: **0 đồng**; n = 9: **108 000 đồng**; n = 10: **110 000 đồng**. Mốc 10 là trường hợp đầu tiên được giảm, giúp phát hiện lỗi dùng `n > 10` thay `n >= 10`. (0,75 điểm: ba kết quả 0,5; lí do thử mốc 0,25.)
Chấp nhận chương trình đúng tương đương, như dùng if/else. Cần giữ điều kiện từ 10 trở lên và chỉ giảm một lần, không giảm trên từng quyển.