Базовыми алгоритмическими структурами принято называть подмножество алгоритмических структур, которые позволяют составить алгоритм решения сколь угодно сложной задачи (структурное программирование). Эти структуры могут быть выбраны разработчиком программы в зависимости от специфики решаемой задачи. К простейшим базовым алгоритмическим структурам относятся: последовательные структуры; разветвляющиеся структуры; циклические структуры регулярного типа; циклические структуры итеративного типа.
В свою очередь из базовых алгоритмических структур могут быть составлены алгоритмы решения простейших типовых задач, часто встречающихся в качестве составляющих при решении многих инженерных задач. Такие типовые алгоритмы будем в дальнейшем называть базовыми алгоритмами.
Последовательными называются такие алгоритмические структуры, в которых функциональные элементарные блоки выполняются в том порядке, в котором они записаны или изображены на схеме алгоритма. Такая структура может быть составлена из совокупности блоков «Пуск/останов», «Ввод/вывод», а также блоков «Процесс», используемых для проведения вычислений (рис.В.3-1).
Рис. В.3-1. Алгоритмическая Рис.В.3-2. Алоритмическая
структура структура
– прследовательность – стандартное разветвление
Разветвляющимися называются такие алгоритмические структуры, в которых порядок выполнения функциональных блоков определяется значениями логических выражений, использующихся для организации разветвления. Разветвляющийся алгоритм может состоять из нескольких ветвей, каждая из которых может содержать любую, сколь угодно сложную, алгоритмическую структуру.
Рис. В.3-3. Алгоритмическая Рис.В.3-4. Алгоритмическая
структура – усеченное разветвление структура – усеченное разветвление
В процессе работы алгоритма в первую очередь вычисляются логические выражения. Если логическое выражение принимает значение «Истина», то выполняется часть алгоритма, расположенная по ветви «Да», если принимает значение «Ложь», то – часть алгоритма по ветви «Нет».
Анализ разветвляющихся алгоритмов, применяемых в практических задачах, показывает, что наиболее часто используются три типа разветвлений:
Стандартное разветвлениесодержит функциональные блоки как в ветви «Да», так и в ветви «Нет» (рис.В.3-2).
Усеченное разветвление содержит функциональные блоки только в ветви «Да» или только в ветви «Нет» (рис.В.3-3, В.3-4).
Вложенное разветвлениесодержит одно или несколько дополнительных разветвлений (рис.В.3-5).
Рис. В.3-5. Алгоритмическая Рис.В.3-6. Алгоритмическая
структура – вложенное разветвление структура – регулярный цикл
В соответствии с основным принципом структурного программирования, все разветвляющиеся структуры, как и все другие алгоритмические структуры, должны иметь один вход и один выход.
Циклическими называются структуры, в которых предусмотрена возможность многократного повторения выполнения фрагмента алгоритма. Этот участок называется телом цикла. Различают циклические структуры двух видов: с заранее известным и с неизвестным числом повторений цикла.
Циклические структуры, в которых число повторений цикла заранее известно или может быть определено до начала цикла, называются регулярными циклическими структурами (рис.В.3-6).
В блоке организации цикла используется специальная переменная, которая предназначена для определения условия останова цикла (i). Эта переменная называется параметром цикла. Блоки, следующие за заголовком цикла, составляют тело цикла. Тело цикла выполняется для всех значений параметра цикла i, начинающегося со значения m1 и изменяющегося с шагом m3 до значения m2.
Если из условия задачи следует, что число повторений цикла заранее не определено, а вычисляется в процессе выполнения алгоритма, то условие выхода из цикла должно быть определено в процессе его выполнения. При этом важно, чтобы в условие выхода из цикла входила переменная, значение которой изменялось бы в теле цикла, иначе выполнение цикла будет бесконечным.
Циклическая структура, в которой число повторений цикла заранее неизвестно, а определяется только в процессе выполнения алгоритма, называется итеративной циклической структурой.
В зависимости от места расположения условия продолжения цикла (или выхода из цикла) итеративные циклические структуры подразделяются на два вида: с предусловием и с постусловием.
Рис. В.3-7. Алгоритмическая Рис.В.3-8. Алгоритмическая
структура – итеративный цикл структура – итеративный цикл
При организации цикла с предусловием (рис.В.3-7) блоки тела цикла, следующие за блоком, в котором проверяется условие выхода из цикла, выполняются всякий раз, когда условие L принимает значение «Истина». При первом невыполнении этого условия происходит выход из цикла. Таким образом, возможен случай, когда тело цикла не будет выполнено ни разу. Поэтому циклические структуры с известным числом повторений (регулярные циклы) относятся к числу циклических алгоритмов с предусловием.
При организации циклов с постусловием, для которых условие выхода из цикла (или повторения тела цикла) проверяется после выполнения цикла
(рис.В.3-8), цикл всегда выполняется хотя бы один раз, независимо от значения L, и только после его выполнения принимается решение – продолжать выполнение цикла или выйти из него.
Статьи к прочтению:
- В.4. основные средства разработки программ, и платформа framework
- В.5. общие рекомендации по разработке учебных программ
Введение в алгоритмический трейдинг — зачем, как и для кого это нужно
Похожие статьи:
-
Базовые алгоритмические структуры.
Логическая структура любого алгоритма может быть представлена комбинацией трех базовых структур: следование (линейная структура), ветвление, цикл…
-
Билет 30 производные алгоритмические структуры
Формирование .особенности алгоритма. 1.Вводится размерность массива 2.В зависимости от размерности массива организуется циклический процесс. Телом цикла…