Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
11-АЛГ.doc
Скачиваний:
70
Добавлен:
09.02.2016
Размер:
816.64 Кб
Скачать

Разветвляющиеся алгоритмы. Команда ветвления

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

При графическом представлении алгоритма ветвление (развилка, выбор дальнейших действий) организуется с помощью логического элемента (ромб с записанным внутри условием), имеющего один вход и два выхода. Назначение логического элемента — проверка заданного условия. В зависимости от выполнения (истинности) или невыполнения (ложности) проверяемого условия возможен выход соответственно на ветвь "Да" или "Нет". Пример:

Задача. Вычислить y = |x|.

Дано: х – значение аргумента.

Требуется: у – значение функции.

Метод решения: y =

Алгоритм решения данной задачи сначала составим в графической форме (Рис. 2).

Рис. 2

Словесная форма алгоритма.

Начало

Запросить значение переменной x

Если х>=0

то

y:=х

иначе

у:=–х

Конец ветвления

Вывести значение переменной у

Конец

Общий вид полной условной конструкции, реализующей ветвление при графическом представлении алгоритма, изображен на Рис. 3. Здесь Q — проверяемое условие; Т — действие, которое должно быть выполнено в случае истинности условия Q (положительная ветвь ветвления); Р — действие, выполняемое, если условие Q ложно (отрицательная ветвь ветвления).

Рис. 3

Рис. 4

При словесном представлении алгоритма полная условная конструкция реализуется командой ветвления вида:

Если Q

то

T

иначе

P

Конец ветвления

Но возможен и другой вариант — неполная условная конструкция (Рис. 4), достаточно часто встречающаяся при решении задач.

При словесном представлении алгоритма ей отвечает команда ветвления:

Если Q

то

T

Конец ветвления

Циклические алгоритмы

При составлении алгоритмов решения достаточно большого круга задач нередко возникает потребность в неоднократном повторении одних и тех же команд. Алгоритм, составленный с использованием многократных повторений одних и тех же действий (циклов), называется циклическим.

Однако "неоднократно" не значит "до бесконечности". Организация циклов, никогда не приводящая к остановке в выполнении алгоритма (так называемое "зацикливание"), является нарушением требования его результативности — получения результата за конечное число шагов.

Рассмотрим графическое представление циклического блока алгоритма (Рис. 5). В него входят в качестве базовых следующие структуры: логический элемент с проверкой условия Q и блок S, называемый телом цикла. Здесь тело цикла S расположено после проверки условия Q (цикл с предусловием), поэтому может случиться, что при определенных условиях блок S не выполнится ни разу. Такой вариант организации цикла, управляемый предусловием, называется цикл-пока.

Рис. 5

При словесном представлении алгоритма команда, организующая повторение в цикле-пока имеет вид:

Пока Q повторять

S

Конец цикла

Таким образом, если Q не выполняется, то предусмотрен выход из цикла на команду, записанную после строки "Конец цикла". Здесь условие Q — это условие на продолжение цикла.

Возможен другой случай, когда тело цикла S выполняется, по крайней мере, один раз и будет повторяться до тех пор, пока не выполнится условие Q (Рис. 6). Такая организация цикла, когда тело цикла, расположено перед проверкой условия Q, носит название цикла с постусловием или цикла-до. Истинность условия Q в этом случае — причина окончания цикла. Команда, организующая цикл-до, приведена ниже:

Рис. 6

Повторять

S

пока не Q

Конец цикла

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]