C1-02 · Phân tích tiền điện
Xem dạng PDFĐề
Trong sách đây là bài làm trên giấy; trên hệ thống, bài được chuyển thành dạng nộp chương trình để tự kiểm tra đáp án — tinh thần đề giữ nguyên: tách bài toán thành dữ liệu vào – xử lý – dữ liệu ra (mục 1.1.1).
Bài toán: "Tính tiền điện một tháng, biết chỉ số công tơ đầu tháng, chỉ số cuối tháng và đơn giá mỗi kWh."
Xếp mỗi mục sau vào dữ liệu vào, xử lý hoặc dữ liệu ra:
- (a) chỉ số đầu tháng;
- (b) lấy chỉ số cuối trừ chỉ số đầu;
- (c) số tiền phải trả;
- (d) đơn giá;
- (e) nhân số kWh với đơn giá;
- (f) chỉ số cuối tháng.
Viết chương trình in câu trả lời bằng các lệnh print().
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ả
Đúng 6 dòng, lần lượt cho các mục a, b, c, d, e, f. Mỗi dòng gồm chữ cái của mục, một dấu cách, rồi tên nhóm viết chữ thường, không dấu, là một trong ba cụm:
| Nhóm | Viết là |
|---|---|
| Dữ liệu vào | vao |
| Xử lý | xu ly |
| Dữ liệu ra | ra |
Ví dụ định dạng (với một bài toán khác — "chia đều tiền ăn", mục 1.1.1 — không phải đáp án bài này): mục "tổng tiền" in x vao, mục "chia tổng tiền cho số người" in y xu ly, mục "số tiền mỗi người trả" in z ra.
Ràng buộc
- Thứ tự dòng: a, b, c, d, e, f. Không in tiêu đề, không in thêm lời giải thích.
- Chấm giống hệt từng ký tự (checker Byte identical): đúng một dấu cách giữa chữ cái và tên nhóm (
xu lycũng đúng một dấu cách), không dấu cách đầu/cuối dòng, không dòng trống — kể cả dòng trống giữa các mục hay sau mục f. In dòng trống thì không còn là "đúng 6 dòng". - Chỉ cần lệnh
print()(mục 1.3.1).
Lưu ý khi nộp
- Đọc kỹ câu đề: những gì đề nói "biết" là thứ phải có trước khi tính. Đối chiếu với nhận xét ở mục 1.1.1 về hai hệ số 0,4 và 0,6 để quyết định mục (d).
print("a", "vao")cho đúnga vao(Python tự chèn một dấu cách);print("a ", "vao")thành hai dấu cách và bị Wrong Answer.- Hệ thống chỉ báo đúng/sai cho cả bài, không chỉ ra sai ở mục nào: hãy lập luận trên giấy trước, đừng đoán thử nhiều lần.
Giải thích ví dụ
Với bài "chia đều tiền ăn": tổng tiền phải biết trước khi tính nên là dữ liệu vào; phép chia là xử lý; số tiền mỗi người trả là câu trả lời nên là dữ liệu ra. Bài tiền điện làm tương tự cho sáu mục (a)–(f). Một mẹo kiểm tra: mỗi mục xử lý là một hành động (động từ "lấy… trừ…", "nhân…"), còn dữ liệu vào và dữ liệu ra là giá trị.
Nguồn trong sách: Bài C1-02, 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: (*)