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


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

Задача №1. Предупреждение о высокой температуре

Введение
Вы создаёте систему мониторинга для теплицы на Рудироне. Если температура превышает 28 °C, нужно вывести сообщение через последовательный порт, чтобы предупредить о жаре. Дайте теплице возможность сказать: «Слишком жарко!».

Задание
Напишите программу для Рудирона, которая создаёт переменную temp типа float со значением 28.0. Используйте структуру if, чтобы проверить, больше ли temp значения 28. Если да, выведите в монитор порта сообщение «Температура высокая!».

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

Задача №2. Статус батареи робота

Введение
Ваш робот на Рудироне питается от батареи, и вы хотите, чтобы он сообщал о её состоянии: «Заряд полный», «Заряд средний» или «Заряд низкий». Используйте структуру if-else if-else, чтобы проверить уровень заряда и вывести правильное сообщение.

Задание
Напишите программу для Рудирона, которая создаёт переменную battery типа int со значением 75. Используйте структуру if-else, чтобы проверить:

  • Если battery > 80, выведите «Заряд полный».
  • Если battery >= 30, выведите «Заряд средний».
  • В противном случае, выведите «Заряд низкий».

Вопросы для размышления:
1. Почему важен порядок проверок в цепочке if-else if-else?
2. Что произойдёт, если battery будет равно ровно 80? А 30?
3. Как изменить программу, чтобы добавить категорию «Критически низкий» для заряда ниже 10?

Задача №3. Управление скоростью вентилятора

Введение
Вы программируете умный дом на Рудироне, где вентилятор должен работать на разной скорости в зависимости от температуры. Если жарко - быстро, если тепло - медленно, а если прохладно - выключается. Используйте структуру if-else, чтобы имитировать это управление.

Задание
Напишите программу, которая создаёт переменную temp типа float со значением 27.5. Используйте if-else, чтобы проверить:

  • Если temp > 28, выведите «Вентилятор на высокой скорости».
  • Если temp >= 25, выведите «Вентилятор на низкой скорости».
  • Иначе, выведите «Вентилятор выключен».

Вопросы для размышления:
1. Как изменится вывод, если temp будет равно 25.0?
2. Какие ещё устройства в умном доме можно контролировать с помощью if-else?
3. Как добавить ещё одну скорость вентилятора для температур выше 32?

Задача №4. Контроль влажности почвы

Введение
Вы создаёте систему автополива для сада на Рудироне. В зависимости от уровня влажности система выдаёт разные команды. Используйте структуру switch, чтобы классифицировать уровень влажности и вывести сообщение.

Задание
Напишите программу, которая создаёт переменную moisture типа int со значением 40. Используйте switch, чтобы проверить moisture:

  • Для 20 выведите «Сухо, включить полив».
  • Для 40 выведите «Влажность нормальная».
  • Для 60 выведите «Влажно, полив не нужен».
  • Для других значений (default) выведите «Неизвестный уровень».

Вопросы для размышления:
1. Что произойдёт, если moisture будет равно 50?
2. Какие ещё системы можно контролировать с помощью switch?
3. Почему важно добавлять break в каждом case? Что случится, если его убрать?

Задача №5. Команды для робота

Введение
Вы программируете робота на Рудироне, который выполняет разные действия в зависимости от полученной команды: ‘A’, ‘B’, ‘C’ или ‘D’. Используйте структуру switch, чтобы робот реагировал на команды.

Задание
Напишите программу, которая создаёт переменную command типа char со значением 'B'. Используйте switch, чтобы проверить command:

  • Для 'A' выведите «Робот движется вперёд».
  • Для 'B' выведите «Робот поворачивает».
  • Для 'C' выведите «Робот остановлен».
  • Для 'D' выведите «Робот подаёт сигнал».
  • Для других значений выведите «Неизвестная команда».

Вопросы для размышления:
1. Что произойдёт, если command будет равно 'E'?
2. Как добавить новую команду, например, 'S' для сканирования?
3. Какие устройства, кроме робота, могут использовать такую систему команд?


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