Задачи для начинающих
Нужно идти все же дальше. Может потом кто-то еще захочет почитать.
Из того что мы знаем, нам в итоге нужно пойти по трём путям:
- ничего не делать
- включить нагрев
- выключить нагрев
Проблема, как это закинуть в ветвление у которого только два пути?
Довольно просто, нужно сделать два ветвления. Значить у нас должно быть и два условия.
На первый взгляд начальное условие просится само собой - если температуры равны, то ничего не делать.
Затем нужно проверить, что у нас с текущей (измеренной) температурой, если она меньше заданной то нужно включить нагреватель иначе выключить.
Теперь осталось вспомнить, что мы получаем температуры в виде вещественных чисел. Вроде какая разница целое или вещественное при сравнении? А она есть и следует пока просто поверить на слово и запомнить, что не следует проверять в лоб - А равно Б, если одно из чисел вещественное. Во многих случая, данную рекомендацию или не знают или игнорируют. И всё работает. Однако до некоторого времени, пока не звонит/пишет заказчик и говорит, что у него программа вдруг стала выдавать неверные результаты.
Поэтому правильное сравнение выглядит немного странно |А-Б| < x, где | | означают абсолютное значение, < обозначает меньше, а х - это допуск или точность. Например, если нас интересует расстояние между городами и мы получили два значения, будет ли нас интересовать равны ли они с точностью до метра или нет? А вот когда хотим заказать новую дверь, скорее всего измерим дверной проем с точностью до миллиметра.
В итоге у нас получается следующее описание:
Прочитать измеренную температуру (Tist) Прочитать/ввести желательную температуру (Tsoll) ЕСЛИ |Tist - Tsoll| < Tolerance ТО 1. ничего не делать ИНАЧЕ ЕСЛИ Tist < Tsoll ТО 2. включить нагреватель ИНАЧЕ 3. выключить нагреватель