Bài 12.3. Bộ lọc dữ liệu cảm biến - [Độ khó: Khá]
Bài 12.3. Bộ lọc dữ liệu cảm biến - [Độ khó: Khá]
Mô tả: Bạn đang làm việc trong một dự án theo dõi môi trường, thu thập dữ liệu từ các cảm biến nhiệt độ. Đôi khi, cảm biến có thể gửi về các giá trị nhiễu (quá cao hoặc quá thấp) do lỗi thiết bị hoặc nhiễu môi trường. Nhiệm vụ của bạn là viết một chương trình để lọc bỏ những giá trị nằm ngoài một khoảng an toàn cho trước [min_nhiet_do, max_nhiet_do]
và sau đó tính nhiệt độ trung bình của các giá trị còn lại. Nếu không còn giá trị nào sau khi lọc, chương trình cần thông báo phù hợp. Bài tập này yêu cầu bạn kết hợp việc sử dụng mảng, hàm để xử lý dữ liệu và logic điều kiện để lọc.
INPUT FORMAT
Dòng đầu tiên chứa một số nguyên N
(1 <= N <= 200), là số lượng bản ghi nhiệt độ.
Dòng thứ hai chứa N
số nguyên nhiet_do_i
(-50 <= nhiet_do_i <= 100), là các giá trị nhiệt độ được ghi lại, cách nhau bởi dấu cách.
Dòng thứ ba chứa hai số nguyên min_nhiet_do
và max_nhiet_do
(-50 <= min_nhiet_do <= max_nhiet_do <= 100), là khoảng nhiệt độ an toàn.
OUTPUT FORMAT
Nếu sau khi lọc, có ít nhất một giá trị nhiệt độ hợp lệ, in ra nhiệt độ trung bình của các giá trị hợp lệ, làm tròn đến 2 chữ số thập phân. Nếu không có giá trị nào hợp lệ sau khi lọc, in ra "Khong co du lieu hop le."
Ví dụ 1:
Input:
6
20 25 10 30 5 22
15 28
Output:
22.33
Giải thích:
- Dữ liệu nhiệt độ: 20, 25, 10, 30, 5, 22.
- Khoảng an toàn: [15, 28].
- Các giá trị hợp lệ sau khi lọc: 20, 25, 22. (10, 30, 5 bị loại bỏ vì nằm ngoài khoảng [15, 28]).
- Tổng các giá trị hợp lệ: 20 + 25 + 22 = 67.
- Nhiệt độ trung bình: 67 / 3 = 22.333... Làm tròn là 22.33.
Ví dụ 2 (Trường hợp biên):
Input:
4
10 5 12 8
15 20
Output:
Khong co du lieu hop le.
Giải thích:
- Dữ liệu nhiệt độ: 10, 5, 12, 8.
- Khoảng an toàn: [15, 20].
- Không có giá trị nào trong dữ liệu ban đầu nằm trong khoảng an toàn.
- Do đó, không có dữ liệu hợp lệ nào sau khi lọc.
Comments