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


Эти задачи помогут вам научиться использовать операторы языка C++. Вы будете писать программы для реальных ситуаций, связанных с робототехникой и умным домом, таких как расчёт площади для робота или проверка температуры. Используйте операторы из параграфа, чтобы решить задачи, и проверяйте результаты через монитор порта. Подумайте, какие операторы лучше подойдут для каждой задачи, и попробуйте самостоятельно написать код!

Задача №1. Площадь поля для робота

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

Задание
Напишите программу для Рудирона, которая создаёт переменные width типа int со значением 4 и length типа int со значением 6. Вычислите площадь (ширина × длина) и периметр (2 × (ширина + длина)) и сохраните их в переменные area и perimeter. Выведите значения area и perimeter в монитор порта.

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

Задача №2. Площадь зоны покрытия датчика

Введение
Вы настраиваете датчик движения на Рудироне для умного дома, который покрывает круговую зону радиусом 2.5 метра. Чтобы определить площадь покрытия, нужно вычислить её с использованием константы PI и вывести результат через последовательный порт. Узнайте, какую территорию может «увидеть» ваш датчик!

Задание
Напишите программу для Рудирона, которая создаёт переменную radius типа float со значением 2.5. Вычислите площадь круга (PI × радиус × радиус), используя PI = 3.14159, и сохраните результат в переменную area. Выведите значение area в монитор порта.

Вопросы для размышления:
1. Почему важно использовать точное значение PI, а не просто 3.14?
2. Что произойдёт, если изменить radius на 3.0 и перезагрузить программу?
3. Как можно использовать эту программу для нескольких датчиков с разными радиусами?

Задача №3. Сравнение температур в умном доме

Введение
Ваш умный дом на Рудироне измеряет температуру в двух комнатах: 25.5 °C в гостиной и 24.0 °C в спальне. Нужно сравнить их, чтобы определить, где теплее, и вывести сообщение через последовательный порт, например, «Гостиная теплее». Помогите Рудирону выбрать, где включить кондиционер!

Задание
Напишите программу для Рудирона, которая создаёт переменные tempLiving и tempBedroom со значениями 25.5 и 24.0. Используйте операторы отношения и условный оператор, чтобы вывести в монитор порта одно из сообщений: «Гостиная теплее», «Спальня теплее» или «Температуры равны».

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

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

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

Задание
Напишите программу для Рудирона, которая создаёт переменные isDark типа bool со значением true и motionDetected типа bool со значением false. Используйте логические операторы, чтобы проверить, истинны ли оба условия, и выведите в монитор порта сообщение: «Свет включён» или «Свет выключен».

Вопросы для размышления:
1. Какой оператор (&& или ||) нужно использовать, чтобы свет включался, если выполнено хотя бы одно из условий?
2. Что произойдёт, если оба условия (isDark и motionDetected) станут true?
3. Как добавить в логику третье условие, например, isNightTime?

Задача №5. Счётчик нажатий кнопки

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

Задание
Напишите программу для Рудирона, которая создаёт переменную presses типа int со значением 0. Трижды увеличьте presses на 1, выводя каждое новое значение в монитор порта. Затем уменьшите presses на 1 и выведите итоговое значение.

Вопросы для размышления:
1. Как работает оператор ++ в этой задаче?
2. Что произойдёт, если заменить presses-- на presses -= 2?
3. Как использовать оператор += для увеличения счётчика на 2 за раз?


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