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