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

Báo cáo một phần ba mặt hàng thấp nhất

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

Chốt số dòng trước khi viết vòng lặp

Bài luyện yêu cầu ghi danh sách **một phần ba số mặt hàng có doanh số thấp nhất**. Nếu có `n=9` mặt hàng, cần đúng `9/3=3` dòng, lấy ba vị trí đầu của dãy **đã sắp tăng theo doanh số**. Không cộng thêm một dòng: biểu thức `n//3+1` sẽ lấy bốn mặt hàng khi `n=9` và vượt yêu cầu. Nếu `n` không chia hết cho 3, “một phần ba số mặt hàng” không là số nguyên; trước khi lập trình phải thống nhất quy tắc làm tròn. Mã dưới đây chỉ nhận `n` dương và chia hết cho 3 để yêu cầu không mơ hồ.

Lấy đúng n chia 3 vị trí đầu

```python def mot_phan_ba_thap_nhat(P, S): n = len(P) if n == 0 or n != len(S) or n % 3 != 0: raise ValueError("Cần số mặt hàng dương và chia hết cho 3") if any(S[i] > S[i + 1] for i in range(n - 1)): raise ValueError("Doanh số phải được sắp tăng") return [(P[i], S[i]) for i in range(n // 3)] P = ["Ổi", "Mơ", "Lê", "Na", "Táo", "Cam", "Dưa", "Bí", "Đào"] S = [700, 900, 1000, 1100, 1200, 1500, 1800, 2000, 2200] print(mot_phan_ba_thap_nhat(P, S)) ``` Kết quả là `[('Ổi', 700), ('Mơ', 900), ('Lê', 1000)]`. Hàm này có thể là mô-đun báo cáo mới sau bước đọc và sắp; muốn ghi tệp thì duyệt ba cặp kết quả trong `with open(..., "w", encoding="utf-8")`. Nếu chỉ cần thêm số lượng mặt hàng vào báo cáo trung bình ở bài trước, dùng `len(P)` ở cuối mô-đun ghi, không phải thay cách tính trung bình.

Bài luyện

Nếu có 9 mặt hàng, một phần ba số mặt hàng thấp nhất gồm bao nhiêu hàng?
Chọn một đáp án

Bài luyện

Vì sao không dùng `n//3 + 1` khi `n=9`?
Chọn một đáp án

Bài luyện

Nếu có 8 mặt hàng, cần làm gì trước khi lập trình “một phần ba số mặt hàng”?
Chọn một đáp án

Đang học