8-Lesson №18

Урок №18. Алгоритмическая конструкция "ветвление", полная и неполная форма.

Рассмотрим две задачи для исполнителя Робота, в которых требуется перевести его в клетку, отмеченную буквой Б (рис. 6.35).

Алгоритмы, в которых действия исполнителя зависят от исходных данных (от обстановки), называются разветвляющимися. На блок-схеме такого алгоритма маршрут «расщепляется» на две ветви, появляются два пути выполнения алгоритма — ветвление.

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

Один из вариантов решения задачи, показанной на рис. 6.35, на алгоритмическом языке запишется так:

алг Выйти 
нач
если слева свободно то
влево
иначе
вправо
все
вниз
кон

После слова если записано условие (команда-вопрос). Если условие слева свободно истинно (верно), то выполняются все команды между словами то и иначе. Если условие ложно (неверно), то исполнитель выполняет все команды между словами иначе и все.

Исполнителю в любом случае нужно сделать шаг вниз, чтобы прийти в клетку Б. Но если слева нет стены, он должен ещё подготовиться — сделать шаг влево. А если слева уже есть стена, ничего дополнительно делать не нужно, поэтому ветвь «нет» на блок-схеме пустая! Такое ветвление называется неполным, а вариант, который мы использовали в начале параграфа, — полной формой ветвления.

Неполная форма ветвления отличается тем, что одна из веток на блок-схеме пустая.

Блок-схемы ветвлений в полной и неполной формах показаны на рис. 6.37.

Один из вариантов решения задачи, показанной на рис. 6.36, на алгоритмическом языке запишется так:

алг Выйти 
нач
если слева свободно то
влево
все
вниз
кон

Обратите внимание, что в записи программы на Алгоритмическом языке нет слова иначе. Для ветвления в неполной форме второй блок команд (начинающийся словом иначе) не нужен, ведь он пустой.

Хватит ли одного ветвления для выбора одного из трёх вариантов? Сколько ветвлений нужно для того, чтобы выбрать один из N вариантов?

Напишем алгоритм, выполняя который Робот решает любую из трёх задач (рис. 6.38).

Сравните три задачи на рис. 6.38. Чем отличатся задача а от двух остальных? С помощью какой команды-запроса Робот может определить, что имеет дело именно с задачей а?

Сравните задачи б и в на рис. 6.38. Чем они различатся? С помощью какой команды-запроса Робот может определить, что имеет дело именно с задачей б?

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

Часть алгоритма, обведённая штриховой линией, называется вложенным ветвлением. Вложенные ветвления используются для выбора более чем из двух вариантов действий.

Вложенное ветвление — это ветвление, которое расположено в одной из веток другого ветвления.

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

Задача. Составьте алгоритм, который определяет знак числа. Результат его работы для некоторого числа х должен быть равен:

1, если число х положительное;

—1, если число х отрицательное;

О, если число х равно 0.

Сколько различных вариантов есть в этой задаче? Сколько ветвлений вам потребуется?

Содержимое спойлера

Выполнить домашнюю работу

Выполнить классную работу