"Информатика", Горячев А.В., Волкова Т.О.
Ветвление — способ построить алгоритм так, чтобы дальнейшие действия выбирались по результату проверки условия. Условие может быть истинным или ложным, например «число больше нуля». Если действие нужно только при одном результате, достаточно неполного ветвления; если для каждого результата предусмотрен свой шаг — используется полное. Умение выбирать ветви помогает составлять алгоритмы для разных ситуаций, проверять их на полноту и не оставлять возможные случаи без ответа.
Текст подготовлен нейронной сетью по теме параграфа и не заменяет учебник — важные факты и формулировки сверяйте с ним.
Ветвление — алгоритмическая конструкция, в которой дальнейшие действия зависят от результата проверки условия. Оно нужно, когда алгоритм должен по-разному поступать в разных ситуациях. Например, действие может зависеть от введённого числа или ответа на вопрос.
Условие — утверждение, для которого можно определить, истинно оно или ложно. Например, для числа 7 утверждение «число больше нуля» истинно, а «число меньше нуля» ложно. Проверка условия помогает алгоритму выбрать, какие команды выполнять дальше.
Неполное ветвление — конструкция, в которой действие выполняется только при истинном условии, а при ложном алгоритм продолжает работу без него. Такой вариант нужен, когда при одном результате проверки ничего особенного делать не требуется. Например, сообщение о предупреждении можно показывать лишь при обнаружении ошибки.
Полное ветвление — конструкция, в которой предусмотрены разные действия для истинного и ложного результатов условия. Оно нужно, когда алгоритм должен дать ответ или выполнить действие в любом случае. Например, при проверке чётности можно сообщить либо «чётное», либо «нечётное».
Ветвление используют, когда следующий шаг зависит от ситуации: без выбора один и тот же порядок команд не подходит для всех входных данных. Алгоритм может сначала получить число, вычислить результат или задать вопрос. Затем он выбирает действие, которое соответствует полученным данным. Так, сообщение о скидке имеет смысл выводить только покупателю, выполнившему нужное условие.
Чтобы выбрать дальнейшие команды, алгоритм проверяет условие. Проверка даёт один из двух результатов: «истина» или «ложь», поэтому условие должно быть понятным и проверяемым. Например, выражение «x больше 10» истинно при x = 12 и ложно при x = 8. После проверки выполняется ветвь, соответствующая полученному результату.
В неполном ветвлении действие связано только с истинным результатом. Если условие истинно, выполняется указанная команда, а если ложно — эта команда пропускается и алгоритм идёт дальше. Это удобно, когда при ложном результате достаточно ничего не менять. Например, увеличивать счётчик нужно только тогда, когда найден подходящий элемент.
В полном ветвлении для истинного и ложного результатов заданы разные действия. Поэтому алгоритм сначала проверяет условие, выполняет одну из двух ветвей, а затем продолжает работу после конструкции. Например, если число делится на 2 без остатка, выводится «чётное», иначе — «нечётное». Ветви не выполняются обе одновременно: выбор определяется результатом проверки.
Условие должно приводить к однозначному выбору: для заданных данных нельзя одновременно считать его истинным и ложным. При составлении алгоритма также проверяют, заданы ли действия для всех нужных результатов. Для этого полезно мысленно подставить примеры, при которых условие истинно, и примеры, при которых оно ложно. Если при каком-то случае непонятно, что делать дальше, алгоритм нужно дополнить.
| Свойство | Неполное ветвление | Полное ветвление |
|---|---|---|
| Какие результаты условия учитываются | Истинный результат | Истинный и ложный результаты |
| Действие при истинном условии | Выполняется | Выполняется действие для истинной ветви |
| Действие при ложном условии | Отдельное действие не задано, алгоритм продолжает работу | Выполняется действие для ложной ветви |
| Когда применять | Когда при ложном результате дополнительный шаг не нужен | Когда требуется предусмотреть действия при обоих результатах |
Сначала определите, требуется ли действие при ложном результате. Если нет, подходит неполное ветвление; если требуется ответ для обоих исходов, выбирайте полное. Таблица также помогает проверить, не перепутаны ли действия для истинного и ложного результатов.
Задача 1. Составить алгоритм: если число больше 0, вывести сообщение «Положительное». При ложном условии никакого сообщения по условию задачи выводить не нужно. Значит, отдельное действие для ложного результата не требуется. Здесь подходит неполное ветвление.
Ответ: если x > 0, вывести «Положительное»; затем продолжить алгоритм.
Задача 2. Составить алгоритм, который сообщает, является ли введённое число чётным или нечётным. Здесь ответ нужен для каждого целого числа, поэтому неполного ветвления недостаточно. Число чётное, если при делении на 2 остаток равен нулю; в противном случае оно нечётное.
Ответ: использовать полное ветвление с проверкой остатка от деления на 2.
Задача 3. По двум числам вывести большее, а при равенстве сообщить, что числа равны. Нужно учесть не два, а три возможных случая: первое число больше, второе больше или числа равны. Проверка только одного условия может оставить один из вариантов без ответа, поэтому разберём случаи последовательно.
Ответ: последовательные проверки дают ответ для всех трёх случаев, включая равенство чисел.
Ошибка — считать условием любое действие или команду. Команда «вывести число» сама по себе ничего не утверждает, а условие должно позволять получить результат «истина» или «ложь». Путают их потому, что и команды, и условия записывают в алгоритме рядом. Проверьте себя вопросом: можно ли для конкретных данных однозначно сказать, верно ли это выражение?
Неполный алгоритм возникает, если действие для ложного результата не предусмотрено, хотя ответ нужен при любом исходе. Например, проверка «число положительное?» с выводом только при истинном результате не сообщит, что делать с нулём или отрицательным числом. Такая конструкция допустима лишь тогда, когда при ложном результате можно продолжить без дополнительного действия. Для проверки подставьте пример, при котором условие ложно.
Можно перепутать действия для истинной и ложной ветвей, если не разобрать смысл условия. Например, при условии «x > 0» сообщение «Положительное» должно выводиться тогда, когда условие истинно. Проверьте алгоритм на конкретном положительном и отрицательном числе. Если результат проверки не совпадает с выбранной командой, ветви перепутаны.
При составлении нескольких условий иногда забывают возможный случай или задают пересекающиеся варианты. Тогда данные могут не попасть ни в одну ветвь либо подходить сразу к нескольким. Такое часто случается, если проверять только крайние значения или не учесть равенство. Проверьте алгоритм на нескольких примерах, включая границы и совпадающие значения, и убедитесь, что каждому случаю соответствует понятное действие.
Для понимания ветвления нужно знать, что алгоритм состоит из команд, которые выполняются в определённом порядке. Команда задаёт действие, а проверка условия решает, какой путь выбрать. Поэтому полезно представлять выполнение алгоритма как последовательность шагов.
Чтобы записывать условия, пригодятся сравнение чисел и логические выражения, если вы уже их изучали. Например, знак «больше» позволяет сравнить два значения, а проверка остатка помогает определить чётность. Чем точнее сформулировано условие, тем проще выбрать правильную ветвь.
Ветвление применяют при создании алгоритмов и программ. Дальнейшие действия часто зависят от введённых данных или результатов вычислений: например, программа выбирает сообщение по ответу пользователя. Так алгоритм может учитывать разные ситуации, а не выполнять неизменный набор команд.
Чем ветвление отличается от обычного следования команд?
При обычном следовании команды выполняются одна за другой в заданном порядке. Ветвление сначала проверяет условие, а затем выбирает дальнейшие действия в зависимости от результата.
Как понять, является ли условие истинным или ложным?
Нужно проверить, верно ли утверждение при заданных значениях данных. Например, если число равно 5, условие «число больше нуля» истинно, а условие «число чётное» ложно.
Когда достаточно неполного ветвления?
Оно подходит, если действие требуется только при истинном условии, а при ложном можно просто продолжить алгоритм. Например, вывести предупреждение только тогда, когда введённое число отрицательное.
Зачем в полном ветвлении нужна ветвь для ложного условия?
Она задаёт, что делать, если условие не выполняется. Такая ветвь нужна, когда ответ или действие требуется при любом из двух результатов проверки.
Что делать, если нужно учесть больше двух возможных случаев?
Можно проверить несколько условий по очереди и для каждого подходящего случая задать действие. Нужно убедиться, что все возможные варианты учтены и алгоритм не выбирает противоречащие друг другу ветви.
§ 12. Ветвление