Tìm một điểm Toán bằng đích
```python
def first_math_equal(names, B, C, D, target):
for i in range(len(names)):
if B[i] == target:
return names[i]
return None
```
Với target=8.8 trong mã, kết quả là Mẫu C. Hàm duyệt từ đầu và trả ngay khi thấy; nếu không thấy thì None. Bản này không dùng tìm nhị phân, dù dữ liệu Toán trong ví dụ đã sắp xếp.
Tìm tất cả tổng lớn hơn ngưỡng
```python
def all_total_above(names, B, C, D, threshold):
result = []
for i in range(len(names)):
if B[i] + C[i] + D[i] > threshold:
result.append(names[i])
return result
```
Với threshold=26.5, kết quả là Mẫu D,E,F, có tổng lần lượt27,1;27,5;28,2. Đề yêu cầu các mẫu thỏa nên không dừng ở D.
Toán tăng không bảo đảm tổng ba môn tăng vì các môn khác có thể giảm. Với cách duyệt này, cần kiểm tổng của mọi hàng. Ngưỡng là >, nên tổng đúng bằng 26,5 không được nhận. Chạy bang-diem để xem hai đầu ra; không có kết quả thì danh sách trả về là [].
Bài luyện
Với target=8.8, first_math_equal trên bảng mẫu trả gì?
Mẫu D có 9,0.
Có một hàng khớp điểm đích.
Mẫu C có Toán 8,8.
Mẫu B có 8,5.
Lời giải
Duyệt A rồi B đều chưa bằng 8,8. Tới C có B[i]==8.8 nên trả tên Mẫu C.
Bài luyện
Tổng đúng bằng 26,5 có thỏa điều kiện tổng>26,5 không?
Muốn gồm bằng phải dùng >=.
Vị trí tên không đổi phép so sánh.
Một môn chưa quyết định tổng vượt ngưỡng.
Dấu > không gồm trường hợp bằng.
Lời giải
26,5 không lớn hơn 26,5. Vì đề dùng dấu > nên trường hợp bằng ngưỡng cần bị loại.
Bài luyện
Để tìm tất cả tổng vượt ngưỡng, vì sao không break ở kết quả đầu?
Một kết quả chưa đủ cho yêu cầu tất cả.
Điều kiện đang kiểm tổng ba điểm.
Chỉ dừng khi có căn cứ phù hợp với yêu cầu.
Tổng ba môn vẫn là đại lượng cần tìm.
Lời giải
Mẫu D là kết quả đầu trong ví dụ, nhưng E và F cũng vượt ngưỡng. Cần tiếp tục để nhận đủ mọi mẫu hợp lệ.
Đang học