Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Типовые расчеты с теорией.doc
Скачиваний:
64
Добавлен:
01.03.2016
Размер:
2.7 Mб
Скачать

3. Основные алгоритмические конструкции

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

Указанные виды алгоритмов называют основными алгоритмическими структурами (ОАС). В более сложных случаях используются суперпозиции (вложения) ОАС.

Ниже приведены графические обозначения (обозначения на блок-схемах) ОАС.

Блок – схема

Псевдокоды

Описание

Структура “следование”

нач

ввод <переменные>

< Cерия 1 > < Cерия 2 > вывод <переменные>

кон

Линейный алгоритм решения (структура следование)— описание серии действий, которые выполняются однократно в заданном порядке, т.е. не содержит проверок условий и повторений. Примером линейного алгоритма : нахождение остатка денежных средств по формуле Остаток = Приход – Расход, если введены значения переменных Приход и Расход.

Полная развилка

нач

ввод <переменные>

если< условие >то< Cерия 1 >иначе< Cерия 2 >все

вывод <переменные>

кон

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

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

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

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

Неполная развилка

нач

ввод <переменные>

если< условие >то< Cерия 1 >все

вывод <переменные>

кон

Неполная форма, в которой действия пропускаются: «если условие, то...».

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

Примером команды ветвления неполной формы будет начисление стимулирующей надбавки к окладу в размере 15% только для оклада меньше 3000р.

Цикл с предусловие

(цикл ПОКА)

Цикл с параметром

нач

ввод <переменные>

нц пока< условие >,

< тело цикла > кц

вывод <переменные>

кон

нач

ввод <переменные>

нц для i от In до Ik,

< тело цикла > кц

вывод <переменные>

кон

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

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

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

Разновидностью команды повторения с предусловием является цикл с параметром. Используется если известно количество повторений действия.

Цикл с постусловием

(цикл ДО)

нач

ввод <переменные>

< тело цикла > до < условие >,

вывод <переменные>

кон

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

Примером команды повторения с постусловием будет начисление процентов на остаток по кредиту до тех пор пока он не будет погашен полностью.

На схемах Серия обозначает один или несколько любых операторов; Условие есть логическое выражение (ЛВ) (если его значение Истина, переход происходит по ветви Да, иначе — по Нет). На схеме цикла с параметром использованы обозначения: ПЦ — параметр цикла, НЗ — начальное значение параметра цикла, КЗ — конечное значение параметра цикла, Ш — шаг изменения параметра цикла.