btvn.vn
Tìm kiếm Đăng nhập

Sửa yêu cầu báo cáo mà không sửa phần đọc

Lưu trên thiết bị này
Kĩ thuật lập trình — CS · Chọn bài khác

Ba kiểu thay đổi khác nhau

Từ chương trình ba cao/ba thấp, nếu báo cáo mới cần **hai cao và bốn thấp**, chỉ thay lựa chọn trong mô-đun ghi; phần đọc và sắp vẫn dùng được khi có ít nhất sáu mặt hàng. Nếu bổ sung mặt hàng mới vào `Data.inp` đúng định dạng, không phải sửa thuật toán mà chỉ chạy lại chương trình. Nếu cần báo cáo **doanh số trung bình và các mặt hàng cao hơn trung bình**, có thể thêm một mô-đun báo cáo mới nhận cùng hai dãy `P,S`. Đây là lợi ích cụ thể của ranh giới mô-đun: đổi yêu cầu ở đâu thì kiểm và sửa ở đó.

Mô-đun báo cáo mới có điều kiện dãy không rỗng

```python def bao_cao_tren_trung_binh(P, S): if len(P) != len(S) or not S: raise ValueError("Cần các cặp dữ liệu không rỗng") tb = sum(S) / len(S) ket_qua = [] for i in range(len(S)): if S[i] > tb: ket_qua.append((P[i], S[i])) return tb, ket_qua P = ["Táo", "Mơ", "Lê", "Cam", "Ổi", "Na"] S = [1200, 900, 1000, 1500, 700, 1100] tb, cao_hon = bao_cao_tren_trung_binh(P, S) print(round(tb, 2), cao_hon) ``` Tổng doanh số mẫu là 6400; trung bình khoảng `1066.67`. Kết quả in `1066.67 [('Táo', 1200), ('Cam', 1500), ('Na', 1100)]`. Điều kiện `> tb` loại mặt hàng đúng bằng trung bình. Nếu đọc từ tệp và không có dòng hợp lệ, cần báo không có dữ liệu; không chia cho 0. Khi viết báo cáo ra một tệp khác, dùng `with open(..., "w", encoding="utf-8")` để ghi tiêu đề và các cặp trong `cao_hon`.

Bài luyện

Từ ba cao/ba thấp đổi thành hai cao/bốn thấp, mô-đun nào cần sửa trực tiếp?
Chọn một đáp án

Bài luyện

Với doanh số `[1200, 900, 1000, 1500, 700, 1100]`, những mặt hàng nào cao hơn trung bình?
Chọn một đáp án

Bài luyện

Vì sao hàm báo cáo trung bình kiểm `not S` trước khi chia?
Chọn một đáp án

Đang học