3.05.1. Практикум.md


Эти задачи помогут вам освоить массивы для управления платой Рудирон. Вы будете писать программы для реальных ситуаций, таких как контроль светодиодов или проверка уровня воды, и проверять результаты через монитор порта. Думайте, как использовать массивы, чтобы хранить и обрабатывать данные, и попробуйте самостоятельно написать код!

Задача №1. Управление освещением

Введение
Вы создаёте систему умного дома на Рудироне, которая управляет тремя светодиодами. Их состояния (1 — включён, 0 — выключен) нужно хранить в массиве. Программа должна пройтись по массиву и вывести статус каждого светодиода.

Задание
Напишите программу, которая создаёт массив ledStates типа int с тремя элементами {1, 0, 1}. Используйте цикл for, чтобы вывести для каждого светодиода сообщение, например, «Светодиод 1: Включён».

Вопросы для размышления:
1. Почему массив удобен для хранения состояний нескольких светодиодов?
2. Что произойдёт, если изменить ledStates[1] на 1 и перезагрузить программу?
3. Как добавить в массив четвёртый светодиод?

Задача №2. Мониторинг теплицы

Введение
Вы программируете систему мониторинга для теплицы на Рудироне, которая следит за температурой в четырёх зонах. Если температура в любой зоне превышает 25 °C, нужно вывести предупреждение.

Задание
Напишите программу, которая создаёт массив temps типа float с элементами {22.5, 24.0, 23.2, 26.5}. Используйте цикл for, чтобы вывести температуру каждой зоны. Если температура превышает 25 °C, добавьте сообщение «Высокая температура!».

Вопросы для размышления:
1. Как массив помогает хранить температуры нескольких зон?
2. Что произойдёт, если пороговая температура изменится на 24 °C?
3. Как вывести сообщения только для тех зон, где температура высокая?

Задача №3. Настройка скоростей вентиляторов

Введение
Ваш умный дом на Рудироне управляет тремя вентиляторами. Вы хотите увеличить скорость каждого на 10%, если она ниже 80%. Используйте массив, чтобы хранить и обновлять скорости.

Задание
Напишите программу, которая создаёт массив fanSpeeds типа int с элементами {50, 70, 90}. Используйте цикл for, чтобы проверить каждую скорость: если она меньше 80, увеличьте её на 10. Затем выведите все три обновлённые скорости в монитор порта.

Вопросы для размышления:
1. Почему массив удобен для работы с несколькими вентиляторами?
2. Что произойдёт, если все скорости изначально выше 80?
3. Как изменить программу, чтобы уменьшать скорости на 5%?

Задача №4. Контроль уровня воды

Введение
Вы разрабатываете систему полива на Рудироне, которая следит за уровнем воды в трёх резервуарах. Если уровень в каком-либо из них превышает 90%, нужно вывести предупреждение.

Задание
Напишите программу, которая создаёт массив waterLevels типа int с элементами {70, 85, 95}. Используйте цикл for, чтобы вывести уровень каждого резервуара. Если уровень выше 90, добавьте сообщение «Опасность переполнения!».

Вопросы для размышления:
1. Как массив упрощает контроль нескольких резервуаров?
2. Что произойдёт, если порог переполнения снизить до 80%?
3. Как добавить в программу подсчёт количества переполненных резервуаров?

Задача №5. Система безопасности

Введение
Ваша система безопасности на Рудироне использует четыре датчика движения. Программа должна проверить состояние каждого датчика и вывести сообщение, если движение обнаружено.

Задание
Напишите программу, которая создаёт массив motionSensors типа bool с элементами {false, true, false, true}. Используйте цикл for, чтобы вывести состояние каждого датчика (например, «Датчик 1: Неактивен»). Если датчик активен (true), добавьте сообщение «Движение обнаружено!».

Вопросы для размышления:
1. Почему массив типа bool хорошо подходит для хранения состояний датчиков?
2. Что произойдёт, если все датчики станут неактивными?
3. Как подсчитать общее количество активных датчиков?


Молодцы, вы научились использовать массивы, чтобы Рудирон эффективно работал с наборами данных! Если какая-то задача не получилась, вы можете посмотреть решения в файле с ответами. Теперь переходите к следующему параграфу, чтобы научиться организовывать код с помощью функций.