Vào kì nghỉ cuối tuần vừa qua, gia đình bạn An tổ chức tham quan du lịch với giá vé điểm tham quan như ở Hình 1.

Chương trình tính tiền vé tham quan của bạn An như sau:
# Chương trình tính số tiền vé tham quan du lịch
songuoi = int(input("Nhập số người: "))
sotien = songuoi * 120000
print("Tổng tiền vé là:", sotien, "đồng.")
Nếu gia đình đi tham quan vào ngày thường thì chương trình ở trên có tính đúng số tiền vé phải trả không? Tại sao?
- Chương trình mà bạn An đã viết chỉ tính tiền vé tham quan với giá 120.000 VND cho mỗi người, không phân biệt ngày trong tuần. Điều này sẽ dẫn đến việc tính toán sai số tiền vé nếu gia đình đi tham quan vào ngày thường (từ thứ 2 đến thứ 6) vì giá vé trong những ngày này là 60.000 VND.
*Phân tích chương trình:
- Nhập số người: Dòng songuoi = int(input(“nhập số người: ”)) nhập vào số người tham gia.
- Tính toán tiền vé: Dòng sotien = songuoi * 120000 tính tổng số tiền với giá vé cố định là 120.000 VND cho mỗi người.
- In kết quả: Dòng print (“tổng số tiền vé là: “,sotien,“đồng”.) in ra tổng số tiền.
*Vấn đề:
- Nếu gia đình đi tham quan vào ngày thường (thứ 2 đến thứ 6), giá vé đúng phải là 60.000 VND cho mỗi người. Chương trình không có điều kiện để kiểm tra ngày trong tuần, do đó sẽ tính sai số tiền vé.
*Cách sửa chương trình:
Để chương trình hoạt động chính xác, em cần thêm một phần nhập vào ngày tham quan và điều kiện để tính tiền vé đúng. Dưới đây là phiên bản sửa đổi của chương trình:
*Chương trình sửa đổi:
# Nhập số người
songuoi = int(input("Nhập số người: "))
# Nhập ngày tham quan
ngay_tham_quan = input("Nhập ngày tham quan (thứ 2 đến chủ nhật): ").strip().lower()
# Xác định giá vé dựa trên ngày tham quanif ngay_tham_quan in ["thứ 2", "thứ 3", "thứ 4", "thứ 5", "thứ 6"]:
giave = 60000 # Giá vé cho ngày thườngelse:
giave = 120000 # Giá vé cho cuối tuần
# Tính số tiền vé tham quan
sotien = songuoi * giave
# In kết quảprint("Tổng số tiền vé là:", sotien, "đồng.")