На Горох
Информатика

Разветвляющийся алгоритм

"Информатика (в 2 частях)", Нателаури Н.К., Маранин С.С.

Объяснение темы

Кратко о теме

Разветвляющийся алгоритм выбирает дальнейшие действия в зависимости от результата проверки условия. Он нужен, когда для разных исходных данных требуется разный порядок команд. Условие должно быть истинным или ложным, а выбранная последовательность команд называется ветвью. В алгоритмах используют полное ветвление с действиями для обоих результатов и неполное — только для одного.

Объяснение темы

Текст подготовлен нейронной сетью по теме параграфа и не заменяет учебник — важные факты и формулировки сверяйте с ним.

Определения и обозначения

Разветвляющийся алгоритм — алгоритм, в котором дальнейшие действия зависят от проверки условия. Он не ведёт исполнителя по единственному пути, а выбирает подходящую последовательность команд. Такой способ нужен, когда один и тот же алгоритм должен работать с разными исходными данными.

Условие — утверждение, которое можно признать истинным или ложным. Например, «число больше нуля» после подстановки значения получает один из двух результатов. Условие нужно, чтобы алгоритм мог обоснованно выбрать дальнейшую ветвь, а не действовать случайно.

Ветвь алгоритма — последовательность команд, выполняемая при определённом результате проверки условия. Одна ветвь может запускаться при ответе «да», другая — при ответе «нет». Выделение ветвей помогает понять, какие действия относятся к каждому возможному случаю.

Полное и неполное ветвление — две формы выбора команд. В полном ветвлении описаны обе ветви, а в неполном — действия только для одного результата условия. Это позволяет не записывать ненужные команды, если при одном из исходов достаточно продолжить алгоритм.

Как это устроено

Разветвление требуется, когда алгоритм должен по-разному действовать в зависимости от исходных данных или ситуации. Например, стоимость поездки может зависеть от расстояния, а сообщение программы — от знака числа. Без выбора пришлось бы заранее составлять отдельный алгоритм для каждого случая.

Условие проверяют в точке выбора, потому что до проверки алгоритм ещё не знает, какая последовательность команд подходит. Результат сравнения определяет направление дальнейшего выполнения. Если ответ истинен, запускается одна ветвь, а если ложен — другая или ни одна из специальных ветвей.

В полной форме ветвления предусмотрены действия и для истинного, и для ложного результата условия. Это удобно, когда каждый возможный случай требует отдельного ответа, например «число положительное» или «число не является положительным». Ни один результат проверки тогда не остаётся без обработки.

В неполной форме команды записывают только для одного результата, чаще всего истинного. Если условие ложно, алгоритм пропускает эти команды и переходит к следующей общей команде. Такая форма короче, когда особые действия нужны лишь в одном случае, например вывести предупреждение при ошибке.

На блок-схеме проверку условия обозначают ромбом, чтобы отличать её от обычной команды. Из ромба выходят два направления, которые подписывают «да» и «нет»; подпись показывает результат проверки, ведущий к каждой ветви. В записи программы конструкция «если — то — иначе» задаёт полное ветвление, а «если — то» — неполное.

Формы ветвления и их выполнение

ФормаПроверяемое условиеЕсли условие истинноЕсли условие ложно
Полное ветвлениеОдно логическое условиеВыполняется первая ветвьВыполняется вторая ветвь
Неполное ветвлениеОдно логическое условиеВыполняются указанные командыСпециальные команды пропускаются
Пример записиЕсли число > 0Вывести «положительное»Иначе вывести «не положительное»

Сначала определите, какое условие проверяется, затем найдите действия для истинного результата и для ложного. В строке про полное ветвление должны быть заполнены обе последние графы, а в строке про неполное одна из них содержит пропуск специальных действий. Таблица помогает быстро сравнить формы и выбрать нужную для задачи.

Разбор задач

Определение знака числа

Условие: по введённому числу определить, является ли оно положительным. Нужно получить отдельное сообщение для каждого результата проверки, поэтому здесь удобно полное ветвление.

  1. Обозначить введённое значение буквой a.
  2. Проверить условие a > 0.
  3. Если условие истинно, вывести «число положительное»; если ложно, вывести «число не является положительным».

Ответ: алгоритм сравнивает число с нулём и выбирает одно из двух сообщений. При a = 5 сработает первая ветвь, а при a = 0 или a = −3 — вторая.

Сравнение двух чисел

Условие: по двум числам вывести большее, а при равенстве сообщить об этом. Трёх возможных случаев нельзя надёжно охватить одной проверкой, поэтому после первого сравнения нужно проверить второе или отдельно обработать равенство.

  1. Сравнить a и b: если a > b, вывести первое число.
  2. Если первое условие ложно, проверить b > a и при истине вывести второе число.
  3. Если оба сравнения ложны, значения равны, поэтому вывести сообщение «числа равны».

Ответ: алгоритм выдаёт большее число, а при a = b выбирает третью ситуацию. Например, для 8 и 3 сработает первая ветвь, для 2 и 7 — вторая, для 4 и 4 — сообщение о равенстве.

Расчёт стоимости поездки

Условие: при расстоянии до заданного порога действует один тариф, а при превышении — другой. Пусть порог равен 10 км, а условие «расстояние ≤ 10» означает применение первого тарифа.

  1. Ввести расстояние s и проверить s ≤ 10.
  2. Если условие истинно, вычислить стоимость по первому тарифу.
  3. Если условие ложно, вычислить стоимость по второму тарифу.
  4. Проверить значения 9, 10 и 11 км, чтобы убедиться в правильной обработке границы.

Ответ: расстояние 10 км относится к первой ветви, а 11 км — ко второй. Точное распределение тарифов определяется знаком в условии, поэтому граничное значение нельзя оставлять без проверки.

Типичные ошибки

Условие сформулировано неоднозначно, например «число хорошее», и его нельзя уверенно признать истинным или ложным. Так происходит, когда используют бытовое описание вместо сравнения. Проверьте себя: замените переменные конкретными значениями и получите однозначный ответ «да» или «нет».

В полной форме ветвления забывают команды для одного результата условия. Ошибка возникает, если автор проверяет только привычный случай и не думает об остальных данных. Проверьте блок-схему или запись: после проверки должны быть предусмотрены действия и при истине, и при лжи.

На блок-схеме перепутаны направления «да» и «нет». Из-за этого программа выполняет правильные команды при противоположном результате проверки. Подставьте пример, для которого условие истинно, и проследите путь именно по стрелке «да», затем повторите проверку для ложного случая.

Границу относят не к той ветви, например пишут «больше 10» вместо «больше или равно 10». Такая ошибка появляется при невнимательном выборе знака сравнения. Проверьте отдельно значения меньше границы, равное ей и больше неё.

Связь с другими темами

До изучения ветвления нужно понимать, что алгоритм состоит из команд, и уметь сравнивать значения знаками «<», «>», «=», «≤» и «≥». Без этого невозможно правильно составить условие и определить его результат.

Разветвляющиеся алгоритмы связаны с программированием: конструкции условий позволяют программам реагировать на введённые данные. Они применяются в задачах о сравнении чисел, выборе тарифа, проверке ошибок и принятии решений по разным ситуациям.

Что запомнить

  • Ветвление выбирает дальнейшие действия по результату проверки условия.
  • Условие должно иметь истинностное значение: «истина» или «ложь».
  • Полное ветвление предусматривает две ветви.
  • Неполное ветвление задаёт действия только для одного результата проверки.
  • В блок-схеме условие обозначают ромбом.
  • Граничные значения нужно проверять отдельно.

Частые вопросы по теме

Чем разветвляющийся алгоритм отличается от линейного?

В линейном алгоритме команды выполняются в одном и том же порядке от начала до конца. Разветвляющийся алгоритм сначала проверяет условие и выбирает одну из возможных последовательностей действий.

Что именно можно использовать в качестве условия?

Условием может быть утверждение, которое однозначно принимает значение «истина» или «ложь». Например: «число больше нуля», «a равно b», «температура ниже 0 °C».

Чем полное ветвление отличается от неполного?

При полном ветвлении предусмотрены действия и для истинного, и для ложного результата условия. При неполном ветвлении команды записывают только для одного результата, а при другом алгоритм продолжает работу дальше.

Как на блок-схеме показать проверку условия?

Проверку условия обозначают ромбом. Из ромба выходят направления, обычно подписанные «да» и «нет», которые ведут к соответствующим ветвям.

Как проверить, правильно ли алгоритм обрабатывает граничные значения?

Нужно отдельно подставить значение, равное границе, а также значения немного меньше и немного больше неё. Так можно увидеть, к какой ветви относится граница и не допущена ли ошибка в знаке сравнения.

Спросить по теме параграфа

Разветвляющийся алгоритм

Учебник

Оглавление →
Предмет
Информатика
Учебник
"Информатика (в 2 частях)", Нателаури Н.К., Маранин С.С.