Ветвление в алгоритмах. Условные блоки в Scratch
Разветвляющиеся алгоритмы, логические условия (истина/ложь), полная и неполная форма ветвления, блоки «если» и «если-иначе» в Scratch.
В реальной жизни и практических задачах действия далеко не всегда выполняются строго по прямой линии. Очень часто выбор дальнейшего пути зависит от выполнения определенного условия.
Разветвляющийся алгоритм (ветвление) — это алгоритмическая конструкция, в которой в зависимости от истинности или ложности логического условия выполняется либо одна, либо другая последовательность команд.
Логическое условие — это высказывание, о котором можно однозначно сказать, истинно оно («Да», True, 1) или ложно («Нет», False, 0) в текущий момент.
Примеры условий в повседневной жизни:
• «Если на улице идет дождь, взять зонт, иначе надеть кепку»;
• «Если оценка за тест 5, похвалить, иначе разобрать ошибки».
На блок-схемах проверка условия всегда обозначается геометрической фигурой ромб, из которого выходят две стрелки: ветвь «Да» (условие выполнено) и ветвь «Нет» (условие нарушено).
Ветвление
Булево значение
В теории алгоритмов выделяют две формы конструкции ветвления:
1. Полное ветвление («если — то — иначе» / if-then-else):
Если условие ИСТИННО, выполняется серия команд 1 (ветвь «Да»).
Если условие ЛОЖНО, выполняется серия команд 2 (ветвь «Нет»).
Пример: «Если светофор зеленый, переходи улицу, иначе стой на тротуаре»;
2. Неполное ветвление («если — то» / if-then):
Если условие ИСТИННО, выполняется дополнительное действие.
Если условие ЛОЖНО, никаких специальных действий не предпринимается, программа сразу переходит к следующей обычной команде.
Пример: «Если на улице похолодало, надень шарф» (если не похолодало, шарф не надеваем и просто идем дальше).
Полное ветвление
Неполное ветвление
В визуальной среде Scratch для реализации ветвлений служат специальные блоки из категории «Управление» (золотисто-оранжевые блоки):
• Блок неполного ветвления: «если <условие> то»;
• Блок полного ветвления: «если <условие> то ... иначе ...».
В углубление ромбовидной формы внутри этих блоков вставляются логические блоки из категории «Сенсоры» (голубые) или «Операторы» (зеленые):
• «касается [мыши / края сцены / другого спрайта]?»;
• «клавиша [пробел] нажата?»;
• «мышка нажата?»;
• Операции сравнения: (переменная > 50), (ответ = "Алматы"), (счет < 0).
Если условие в шестиугольнике соблюдается, Scratch исполняет команды, вложенные в верхний карман блока. Если блок имеет карман «иначе», при несоблюдении условия исполняются команды нижнего кармана.
Блоки-сенсоры
Операторы сравнения
Нередко поведение персонажа игры должно зависеть от комбинации нескольких условий одновременно. Для этого в Scratch применяются логические связки из палитры «Операторы»:
• Оператор «и» (логическое умножение, AND) — составное условие истинно тогда и только тогда, когда соблюдаются оба условия одновременно (например, <касается края> и <направление = 90>);
• Оператор «или» (логическое сложение, OR) — истинно, если выполняется хотя бы одно из условий (например, <клавиша стрелка вправо нажата?> или <клавиша D нажата?>);
• Оператор «не» (логическое отрицание, NOT) — переворачивает значение: делает истину ложью, а ложь — истиной (например, не <касается препятствия>).
