Вопросы занятия:
· Ветвление;
· Разветвляющиеся алгоритмы;
· Составление разветвляющихся алгоритмов.
В повседневной жизни таких ситуаций, в которых заранее известен алгоритм действий и результат, очень мало. Практически постоянно нам приходится принимать решения от которых будут зависеть дальнейшие действия.
Ветвление – это алгоритмическая конструкция, в которой в зависимости от выполнения условия (да или нет) предусмотрен выбор одной из двух последовательностей команд (ветвей).
А алгоритмы в которых применяется только «ветвление», называются разветвляющимися.
Рассмотрим пример. На уроке русского языка для того чтобы применить правило правописания приставок на "з-" и "с-" вы будете действовать по алгоритму:
Для принятия решения ход рассуждений может быть таким:
Полная форма ветвления:
Графически, полная форма структуры ветвление представляется следующим образом:
Как вы помните Проверка условия изображается с помощью блока «Принятие решения», который условно обозначается ромбом, внутри его записывается условие.
В данный блок входит одна линяя связи, а выходят две линии, возле которых записываются результаты проверки условия да или нет. Далее, в зависимости от выполнения или невыполнения некоторого условия приводится к исполнению либо одна, либо другая последовательность команд.
Иногда, встречаются ситуации, когда вторая последовательность команд отсутствует, то есть сокращённая форма записи.
Например:
Графически, неполная форма структуры ветвление представляется следующим образом:
Изображаем блок «Принятие решения», который условно обозначается ромбом, внутри его записывается условие.
В данный блок входит одна линяя связи, а выходят две линии, возле которых записываются результаты проверки условия да или нет. Здесь, в зависимости от выполнения или невыполнения некоторого условия приводится к исполнению только одна последовательность команд, либо алгоритм будет завершён.
Операции сравнения на алгоритмическом языке можно записать при помощи следующих знаков: меньше; меньше или равно; равно; больше; больше или равно; не равно.
С помощью этих знаков можно сравнивать любые переменные, числа и арифметические выражения, символьные переменные.
Рассмотрим блок-схему алгоритма, по которому большее число из двух будет удвоено.
Обратите внимание на второй блок данной блок-схемы. Здесь записаны имена и типы величин (данных), которые обрабатываются в алгоритме.
В данном примере, в условии, используется одна операция сравнения. Такие условия называются простыми.
То есть простыми называются условия, состоящие из одной операции сравнения.
При решении различных задач иногда возникает необходимость проверять выполнение двух (как например, 0 < а < 5) и более условий. Такие условия называют составными.
Составные условия – это условия которые создаются из нескольких простых, соединённых друг с другом логическими операциями.
Для записи составных условий в алгоритмическом языке используют следующие логические операции: логическое «и» and; логическое «или» оr; логическое отрицание not.
Так с помощью логических операций простые условия объединяют в составные. Простые условия при этом обязательно заключаются в скобки, так как логические операции имеют более высокий приоритет, чем операции сравнения.
Составное условие, состоящее из двух простых условий, соединённых операцией И, верно (истинно) только тогда, когда верны оба простых условия.
Составное условие, состоящее из двух простых условий, соединённых операцией ИЛИ, верно тогда, когда верно хотя бы одно из простых условий.
Составное условие НЕ верно только тогда, когда простое условие ложно.
Рассмотрим пример: Необходимо с помощью блок-схемы изобразить алгоритм, определяющий, является ли данное число двузначным.
Математически, необходимо выполнить сравнение данного числа с числами десять и девяносто девять.
Если данное число n больше либо равно 10 и меньше, либо равно 99, то можно сделать вывод, что данное число двухзначное.
Однако при решении задач часто приходится выбирать не из двух, а из трёх и более вариантов. Существуют разные способы построения соответствующих алгоритмов. Один из них — составить комбинацию из нескольких ветвлений.
Рассмотрим пример: Задан угол. необходимо определить его вид: острый, прямой, тупой, развёрнутый или плоский. Представим решение данной задачи в виде блок-схемы.
Выполним следующее задание. Составим разветвляющийся алгоритм для исполнителя Робот. Дан горизонтальный коридор длиной в шесть клеток и шириной в три клетки, необходимо перевести робота в конец коридора и закрасить все клетки над или под которыми есть выход.
Итак, робот находится в начале коридора, нужно перевести робота в конец коридора и закрасить все необходимые клетки.
В зависимости от выполнения простых или составных условий Робот может выполнять ту или иную последовательность действий.
Простыми условиями для Робота будут:
справа свободно – справа стена, слева свободно – слева стена, сверху свободно – сверху стена, снизу свободно – снизу стена, клетка чистая – клетка закрашена.
Итак, начинаем выполнение алгоритма с команды – «использовать робот». Далее записываем имя алгоритма – «коридор».
Начало
Вправо
Если сверху свободно
То закрасить.
Всё
Если снизу свободно
То закрасить
Всё
Обратите внимание, мы с вами написали алгоритм, который позволит роботу выполнить один шаг в лабиринте. Всего в лабиринте шесть шагов, поэтому для оставшихся пяти достаточно пять раз скопировать данные команды.
Также, для составления данного алгоритма мы использовали сокращённую форму записи. То есть
ЕСЛИ <условие>
ТО <действия 1>
Так как разветвляющийся алгоритм должен работать для различных обстановок, давайте проверим его. Для этого загрузим обстановку Коридор 2 и запустим на выполнение наш алгоритм. Как мы можем видеть, алгоритм написан правильно, так как все необходимые клетки закрашены и робот оказался в конце коридора.
Рассмотрим следующее задание: Из ряда чисел 15, 16, 17 и 18 выписать значения х, удовлетворяющие условию из блок-схемы.
Перед нами блок схема. Для определения результата построим таблицу.
Подведем итоги.
Ветвление – это алгоритмическая конструкция, в которой в зависимости от выполнения условия (да или нет) предусмотрен выбор одной из двух последовательностей команд (ветвей).
А алгоритмы в которых применяется только «ветвление», называются разветвляющимися.