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. Какие устройства, кроме робота, могут использовать такую систему команд?
Молодцы, вы научились создавать программы с ветвлениями, чтобы Рудирон
реагировал на данные и команды! Если какая-то задача не получилась, вы можете посмотреть решения в файле с ответами. Теперь переходите к следующему параграфу, чтобы освоить циклы и сделать ваши проекты ещё более автоматизированными
- Страницы
- 1. Введение
- 1.01. Лабораторная работа №1.1
- 1.02. Лабораторная работа №1.2
- 1.03. Лабораторная работа №1.3
- 1.04. Лабораторная работа №1.4
- 1.05. Лабораторная работа №1.5
- 2. Основы электроники
- 2.01. Электрический ток и параметры цепи
- 2.01.1. Лабораторная работа №2.1.1
- 2.01.2. Лабораторная работа №2.1.2
- 2.02. Сопротивление в цепи
- 2.02.1. Лабораторная работа №2.2.1
- 2.02.2. Лабораторная работа №2.2.2
- 2.03. Полупроводники
- 2.03.1. Лабораторная работа №2.3.1
- 2.03.2. Лабораторная работа №2.3.2
- 3. Основы программирование на C++
- 3.01. Типы данных и переменные
- 3.01.1. Практикум
- 3.02. Операторы в C++
- 3.02.1. Практикум
- 3.03. Структуры ветвления
- 3.03.1. Практикум
- 3.04. Структуры повторения
- 3.04.1. Практикум
- 3.05. Массивы
- 3.05.1. Практикум
- 3.06. Функции
- 3.06.1. Практикум
- 3.07. Решения задач
- 4. Программирование микроконтроллеров
- 4.01. Цифровые сигналы и GPIO
- 4.01.1. Лабораторная работа №4.1.1
- 4.01.2. Лабораторная работа №4.1.2
- 4.01.3. Лабораторная работа №4.1.3
- 4.01.4. Лабораторная работа №4.1.4
- 4.01.5. Лабораторная работа №4.1.5
- 4.01.6. Лабораторная работа №4.1.6
- 4.01.7. Лабораторная работа №4.1.7
- 4.01.8. Лабораторная работа №4.1.8
- 4.02. Аналоговые сигналы и ШИМ
- 4.02.1. Лабораторная работа №4.2.1
- 4.02.2. Лабораторная работа №4.2.2
- 4.02.3. Лабораторная работа №4.2.3
- 4.02.4. Лабораторная работа №4.2.4
- 4.02.5. Лабораторная работа №4.2.5
- 4.03. Аналоговый сигнал и АЦП
- 4.03.1. Лабораторная работа №4.3.1
- 4.03.2. Лабораторная работа №4.3.2
- 4.03.3. Лабораторная работа №4.3.3
- 4.03.4. Лабораторная работа №4.3.4
- 4.03.5. Лабораторная работа №4.3.5
- 4.04. Аналоговый сигнал и ЦАП
- 4.04.1. Лабораторная работа №4.4.1
- 4.04.2. Лабораторная работа №4.4.2
- 4.05. Генерация и измерение импульсов
- 4.05.1. Лабораторная работа №4.5.1
- 4.05.2. Лабораторная работа №4.5.2
- 4.06. Аппаратные прерывания
- 4.06.1. Лабораторная работа №4.6.1
- 4.06.2. Лабораторная работа №4.6.2
- 4.07. Псевдопараллелизм
- 4.07.1. Лабораторная работа №4.7.1
- 4.07.2. Лабораторная работа №4.7.2
- 4.08. Интерфейсы связи - UART
- 4.08.1. Лабораторная работа №4.8.1
- 4.09. Интерфейсы связи - I2C
- 4.09.1. Лабораторная работа №4.9.1
- 4.10. Интерфейсы связи - SPI
- 4.10.1. Лабораторная работа №4.10.1
- home
-
imgs
- 1. Введение
- 1.01. Лабораторная работа №1.1
- 1.02. Лабораторная работа №1.2
- 1.03. Лабораторная работа №1.3
- 1.04. Лабораторная работа №1.4
- 1.05. Лабораторная работа №1.5
- 2. Основы электроники
- 2.01. Электрический ток и параметры цепи
- 2.01.1. Лабораторная работа №2.1.1
- 2.01.2. Лабораторная работа №2.1.2
- 2.02. Сопротивление в цепи
- 2.02.1. Лабораторная работа №2.2.1
- 2.02.2. Лабораторная работа №2.2.2
- 2.03. Полупроводники
- 2.03.1. Лабораторная работа №2.3.1
- 2.03.2. Лабораторная работа №2.3.2
- 3. Основы программирование на C++
- 3.01. Типы данных и переменные
- 3.01.1. Практикум
- 3.02. Операторы в C++
- 3.02.1. Практикум
- 3.03. Структуры ветвления
- 3.03.1. Практикум
- 3.04. Структуры повторения
- 3.04.1. Практикум
- 3.05. Массивы
- 3.05.1. Практикум
- 3.06. Функции
- 3.06.1. Практикум
- 3.07. Решения задач
- 4. Программирование микроконтроллеров
- 4.01. Цифровые сигналы и GPIO
- 4.01.1. Лабораторная работа №4.1.1
- 4.01.2. Лабораторная работа №4.1.2
- 4.01.3. Лабораторная работа №4.1.3
- 4.01.4. Лабораторная работа №4.1.4
- 4.01.5. Лабораторная работа №4.1.5
- 4.01.6. Лабораторная работа №4.1.6
- 4.01.7. Лабораторная работа №4.1.7
- 4.01.8. Лабораторная работа №4.1.8
- 4.02. Аналоговые сигналы и ШИМ
- 4.02.1. Лабораторная работа №4.2.1
- 4.02.2. Лабораторная работа №4.2.2
- 4.02.3. Лабораторная работа №4.2.3
- 4.02.4. Лабораторная работа №4.2.4
- 4.02.5. Лабораторная работа №4.2.5
- 4.03. Аналоговый сигнал и АЦП
- 4.03.1. Лабораторная работа №4.3.1
- 4.03.2. Лабораторная работа №4.3.2
- 4.03.3. Лабораторная работа №4.3.3
- 4.03.4. Лабораторная работа №4.3.4
- 4.03.5. Лабораторная работа №4.3.5
- 4.04. Аналоговый сигнал и ЦАП
- 4.04.1. Лабораторная работа №4.4.1
- 4.04.2. Лабораторная работа №4.4.2
- 4.05. Генерация и измерение импульсов
- 4.05.1. Лабораторная работа №4.5.1
- 4.05.2. Лабораторная работа №4.5.2
- 4.06. Аппаратные прерывания
- 4.06.1. Лабораторная работа №4.6.1
- 4.06.2. Лабораторная работа №4.6.2
- 4.07. Псевдопараллелизм
- 4.07.1. Лабораторная работа №4.7.1
- 4.07.2. Лабораторная работа №4.7.2
- 4.08. Интерфейсы связи - UART
- 4.08.1. Лабораторная работа №4.8.1
- 4.09. Интерфейсы связи - I2C
- 4.09.1. Лабораторная работа №4.9.1
- 4.10. Интерфейсы связи - SPI
- 4.10.1. Лабораторная работа №4.10.1
- home