"Информатика. Учебное пособие для учреждений общего среднего образования с русским языком обучения", В. М. Котов, А. И. Лапо и Ю.А. Быкадоров, Е.Н. Войтехович
Оператор ветвления помогает программе выбирать действия по результату проверки условия. Он нужен, когда при разных исходных данных алгоритм должен вести себя по-разному: например, вывести сообщение только для положительного числа или определить, какое из двух чисел больше. Условие принимает значение «истина» или «ложь». В неполном ветвлении действие задаётся для одного результата, а в полном предусмотрены действия для обоих.
Текст подготовлен нейронной сетью по теме параграфа и не заменяет учебник — важные факты и формулировки сверяйте с ним.
Оператор ветвления — команда, которая выбирает дальнейшие действия алгоритма в зависимости от истинности условия. Проще говоря, программа проверяет ситуацию и решает, какую команду выполнить. Это нужно, чтобы алгоритм мог реагировать на разные данные, а не всегда выполнять один и тот же набор действий.
Условие — выражение, результатом которого является одно из двух логических значений: истина или ложь. Например, выражение x > 0 истинно, если x больше нуля, и ложно в остальных случаях. Проверка условия помогает программе выбрать нужный путь выполнения.
Неполное ветвление — конструкция, в которой действие выполняется только при истинном условии, а при ложном алгоритм продолжает работу без него. Например, сообщение можно вывести только тогда, когда число положительное. Такая форма подходит, если для ложного результата отдельное действие не требуется.
Полное ветвление — конструкция, в которой предусмотрены разные действия для истинного и ложного условий. Если проверка дала истину, выполняется одна команда или группа команд, а если ложь — другая. Эта форма нужна, когда программа должна обработать оба возможных исхода.
Ветвление нужно, когда дальнейшие действия алгоритма зависят от данных или результата проверки. Например, способ обработки числа может зависеть от того, положительное оно, отрицательное или равно нулю. Без ветвления программа выполняла бы одни и те же команды при любых исходных данных, поэтому не могла бы выбрать подходящий ответ.
Условие проверяют в момент выполнения программы, потому что только тогда известны введённые данные и промежуточные результаты вычислений. Сначала программа получает очередное значение, затем вычисляет результат условия. Если он истинен, управление переходит к соответствующей ветви; если ложен — выбирается другой путь, предусмотренный конструкцией.
В неполном ветвлении команда после условия выполняется только при истинном результате. Это удобно, когда нужен один особый случай: например, показать предупреждение, если число отрицательное. При ложном результате программа не останавливается и не повторяет проверку, а переходит к следующей команде за ветвлением.
В полном ветвлении для истинного и ложного условий заданы разные действия. Так программа может, например, вывести «число положительное» при истинном условии, а при ложном — сообщить, что оно не положительное. Одновременно выполняется только одна из двух ветвей, потому что результат проверки не может быть и истинным, и ложным сразу.
При решении задачи сначала определяют, какие случаи нужно различить, иначе часть ситуаций может остаться без подходящего действия. Затем формулируют проверяемое условие и решают, какая команда нужна для каждого его результата. Если случаев больше двух, применяют несколько проверок или составляют условие из нескольких частей. В конце полезно мысленно подставить примеры данных для каждого случая и проверить, что алгоритм выбирает правильное действие.
| Форма | Когда выполняется действие | Что происходит при истинном условии | Что происходит при ложном условии | Когда применять |
|---|---|---|---|---|
| Неполное ветвление | Действие выполняется только при истинном условии. | Выполняется команда, указанная для этого случая. | Программа переходит к следующей команде за ветвлением. | Когда отдельное действие нужно только для одного исхода проверки. |
| Полное ветвление | Для каждого результата условия предусмотрено своё действие. | Выполняется ветвь для истинного условия. | Выполняется ветвь для ложного условия. | Когда нужно обработать оба исхода проверки. |
Сначала определите, требуется ли действие для ложного результата: если нет, достаточно неполного ветвления. Если для обоих исходов нужны разные команды, выбирайте полное. По таблице также удобно проверить, что вы не ожидаете выполнения обеих ветвей одновременно.
Условие задачи требует вывода только в одном случае, поэтому достаточно неполного ветвления. Положительное число больше нуля, значит, проверяем выражение x > 0. Ноль и отрицательные числа условию не соответствуют.
Ответ: используем неполное ветвление с условием x > 0. Например, для x = 5 сообщение появится, а для x = 0 действие внутри ветви не выполнится.
Здесь возможны три исхода: первое число больше, второе число больше или значения равны. Одной проверки на большее значение может быть недостаточно, если равенство не предусмотрено. Удобно сначала проверить равенство, а затем сравнить числа, если они различны.
Ответ: равенство обрабатывается первой проверкой, а для неравных чисел достаточно следующего сравнения. Например, если a = 4 и b = 4, алгоритм сообщит о равенстве и не перейдёт к выбору большего числа.
Не всякие три отрезка образуют треугольник: длина каждого должна быть меньше суммы длин двух остальных. Поэтому нужны сразу три проверки, а не только одна. Чтобы все условия выполнялись одновременно, их объединяют логической операцией «И».
Ответ: условие можно записать так: (a + b > c) И (a + c > b) И (b + c > a). Например, для длин 3, 4 и 5 все проверки истинны, а для длин 2, 3 и 6 последняя проверка ложна, поэтому треугольник составить нельзя.
Записывают условие, которое не охватывает нужный случай: например, проверяют только x > 0, хотя нужно отдельно обработать ноль. Так происходит, если условие составляют, не перечислив все возможные исходы. Проверьте алгоритм на положительном числе, нуле и отрицательном числе и убедитесь, что для каждого задано нужное поведение.
В полном ветвлении могут перепутать действия для истинного и ложного результатов. Это случается, когда условие записано верно, но его смысл не сопоставили с командами. Проговорите вслух, когда условие истинно, а когда ложно, и проверьте на конкретных значениях, какое сообщение появится.
При сравнении чисел иногда не предусматривают равенство, поэтому алгоритм ошибочно сообщает, что одно число больше другого. Причина — привычка проверять только два варианта, хотя одинаковые значения образуют отдельный случай. Подставьте в алгоритм пару равных чисел и убедитесь, что для них предусмотрен правильный ответ.
Ещё одна ошибка — считать, что после одной ветви выполняется и другая. В конструкции с альтернативой выбирается только одна ветвь, соответствующая результату условия. Для самопроверки проследите выполнение на примере с истинным условием, затем на примере с ложным: в каждом случае должна сработать только нужная часть.
Для работы с ветвлением нужны навыки записи алгоритмов, ввода данных и вывода результата: без них программа не сможет получить значения и показать ответ. Также важно знать операции сравнения и понимать логические значения, чтобы составлять проверяемые условия. В более сложных задачах несколько условий объединяют логическими операциями или используют последовательные проверки. Ветвление можно сочетать с циклами, если выбор действия требуется повторять для разных данных.
Чем неполное ветвление отличается от полного?
В неполном ветвлении действие выполняется только при истинном условии, а при ложном программа просто переходит к следующей команде. В полном ветвлении для истинного и ложного результатов заданы разные действия.
Что может быть условием в операторе ветвления?
Условием служит выражение, результат которого — истина или ложь. Например, x > 0 проверяет, больше ли значение x нуля.
Что произойдёт, если условие окажется ложным?
В неполном ветвлении действие внутри ветви будет пропущено, и программа продолжит выполнение со следующей команды. В полном ветвлении выполнится действие, предусмотренное для ложного результата.
Как правильно обработать случай, когда два числа равны?
Случай равенства нужно предусмотреть отдельно, чтобы программа не сообщила, будто одно из чисел больше другого. Например, сначала проверить a = b, а затем сравнить числа.
Можно ли использовать несколько условий для решения одной задачи?
Да, если нужно различить несколько случаев, используют несколько проверок или объединяют условия логическими операциями. Перед составлением алгоритма полезно перечислить все возможные исходы и убедиться, что каждый обработан.
16.2. Решение задач с использованием оператора ветвления