Три основные структуры, используемые в структурном программировании
Термин “структурное программирование” был введен в середине 60-х годов профессором Дейкстра.
Основы теории были представлены в 1966 году двумя итальянскими учеными Бомом и Джакони. Суть этой теории состоит в следующем: любую блок-схему программы можно построить, используя три базовые структуры (см. рис.):
Три основные структуры, используемые в структурном программировании
В рамках структурного программирования задачи, имеющие алгоритмическое решение, могут быть описаны с использованием следующих алгоритмических структур:
· Следование. Предполагает последовательное выполнение команд сверху вниз. Если алгоритм состоит только из структур следования, то он является линейным.
· Ветвление. Выполнение программы идет по одной из двух, нескольких или множества ветвей. Выбор ветви зависит от условия на входе ветвления и поступивших сюда данных.
АЛГОРИТМЫ в ПРОГРАММИРОВАНИИ для новичков | Левенштейн, Фибоначчи, Факториал и т.д.
· Цикл. Предполагает возможность многократного повторения определенных действий. Количество повторений зависит от условия цикла.
· Функция (подпрограмма). Команды, отделенные от основной программы, выполняются лишь в случае их вызова из основной программы (из любого ее места). Одна и та же функция может вызываться из основной программы сколь угодно раз.
Базовая структура следование. Образуется из последовательности действий, следующих одно за другим:
Ветвление if. Это самый простой тип ветвления. Если результат вычисления выражения-условия возвращает true (правда), то выполнение алгоритма идет по ветке «Да», в которую включены дополнительные выражения-действия. Если условие возвращает false (ложь), то выполнение алгоритма идет по ветке «нет», т.е продолжает выполняться основная ветка программы. |
Ветвление if-else. Если выражение-условие возвращает true (правда), то выполнение алгоритма идет по ветке «Да», если условие не выполняется (false), то выполнение идет по ветке «Нет». При любом результате выражения-условия нельзя вернуться в основную ветку программы, минуя дополнительные действия. |
Ветвление if-elif-else. Количество условий может быть различно. Если выполняется первое, то после выполнения действий, программа переходит к основной ветке, не проверяя дальнейшие условия. Если первое условие возвращает ложь, то проверяется второе условие. Если второе условие возвращает правду, то выполняются действия, включенные в вторую ветку конструкции. Последнее условие проверяется лишь в том случае, если ни одно до него не дало в результате true. Данную алгоритмическую конструкцию (if – elif – else) не следует путать с алгоритмической конструкцией «Выбор». |
Цикл while. Пока условие выполняется (результат логического выражения дает true), будут выполняться действия тела цикла. После очередного выполнения вложенных действий условие снова проверяется. Для того чтобы выполнение алгоритма не зациклилось, в теле цикла (помимо прочих действий) должно быть выражение, в результате выполнения которого будет изменяться переменная, используемая в условии. Тело цикла может ни разу не выполниться, если условие с самого начала давало false. |
Цикл do. В этом цикле первый раз условие проверяется лишь после выполнения действий тела цикла. Если условие возвращает true, то выражения-действия повторяются снова. Каким бы ни было условие, тело данного цикла хотя бы раз, но выполнится. |
Цикл for. Данный цикл также называют циклом «Для» (for). В его заголовке указывается три параметра: начальное значение переменной (от), конечно значение (до) и ее изменение с помощью арифметической операции на каждом «обороте» цикла (шаг). |
ВСЯ СЛОЖНОСТЬ АЛГОРИТМОВ ЗА 11 МИНУТ | ОСНОВЫ ПРОГРАММИРОВАНИЯ
Источник: studopedia.ru
Средства описания структурных алгоритмов
1. Основные и дополнительные алгоритмические структуры.
2. Средства описания структурных алгоритмов.
Основные и дополнительные алгоритмические структуры
Одним из способов обеспечения высокого уровня технологичности разрабатываемого программного обеспечения является структурное программирование.
Различают три вида вычислительного процесса, реализуемого программами: линейный, разветвленный и циклический.
Линейная структура процесса вычислений предполагает, что для получения результата необходимо выполнить некоторые операции в определенной последовательности.
Разветвленная структура процесса вычислений предполагает, что конкретная последовательность операций зависит от значений одной или нескольких переменных.
Циклическая структура процесса вычислений предполагает, что для получения результата некоторые действия необходимо выполнить несколько раз.
После того, как в 60-х годах XX в. было доказано, что любой алгоритм можно представить с использованием трех основных управляющих конструкций, в языках программирования высокого уровня появились управляющие операторы для реализации соответствующих конструкций. Эти три конструкции принято считать базовыми. К ним относят:
· следование – обозначает последовательное выполнение действий;
· ветвление – соответствует выбору одного из двух вариантов действий;
· цикл-пока – определяет повторение действий, пока не будет нарушено некоторое условие, выполнение которого проверяется в начале цикла.
Помимо базовых конструкций, языки программирования высокого уровня обычно используют еще три конструкции, которые можно составить из базовых конструкций:
· выбор – обозначает выбор одного варианта из нескольких в зависимости от значения некоторой величины;
· цикл-до – обозначает повторение некоторых действий до выполнения заданного условия, проверка которого осуществляется после выполнения действий в цикле;
· цикл с заданным числом повторений (счетный цикл) – обозначает повторение некоторых действий указанное количество раз.
Эти шесть конструкций были положены в основу структурного программирования.
Рис. 1. Базовые конструкции: а – следование; б – ветвление; в – цикл-пока
Рис. 2. Дополнительные конструкции: а – выбор; б – цикл-до; в – счетный цикл
Программы, написанные с использованием только структурных операторов передачи управления, называют структурными.
Представление алгоритма программы в виде блок-схемы с точки зрения структурного программирования имеет два недостатка:
· предполагает слишком низкий уровень детализации, что часто скрывает суть сложных алгоритмов;
· позволяет использовать неструктурные способы передачи управления, причем часто в блок-схеме они выглядят проще, чем эквивалентные структурные.
Кроме блок-схем, для описания алгоритмов можно использовать псевдокоды, Flow-формы и диаграммы Насси-Шнейдермана.
Средства описания структурных алгоритмов
Псевдокоды. Псевдокод – формализованное текстовое описание алгоритма (текстовая нотация).
Использование псевдокодов ориентирует только на структурные способы передачи управления и потому требует более тщательного анализа разрабатываемого алгоритма. Псевдокоды хорошо согласуются с основным методом структурного программирования – методом пошаговой детализации.
Таблица 1. Псевдокоды
Задача. В векторе A(n) найти заданное число y.
Источник: poisk-ru.ru