Лекция 4 Представление основных структур: итерации, ветвления, повторения. Вспомогательные алгоритмы и процедуры
Типы алгоритмических структур Принципиальным отличием алгоритмических языков, в том числе и языка структурных схем, от естественного языка, является наличие в первых жестких структур, логично, надежно и целесообразно построенных из нескольких блоков. Эти структуры делятся на три группы: Последовательные структуры (следование) – команды выполняются одна за другой в том порядке, в котором записаны в программе (линейные алгоритмы): последовательность; индексная последовательность. Разветвляющиеся структуры (ветвление, выбор) – в зависимости от заданных условий, при выполнении программы выбирается один из возможных вариантов последовательности действий: ветвление двойное (если то иначе); ветвление (еслито); выбор. Циклические структуры (повторение) – в процессе работы программы определенный набор команд выполняется многократно: пока выполнить; выполнить до; выполнить пока выполнить.
Типы алгоритмических структур Линейный алгоритм состоит из упорядоченной последовательности действий, не зависящей от значений исходных данных, при этом каждая команда выполняется только один раз строго после той команды, которая ей предшествует. Разветвляющимися называются алгоритмы, в которых в зависимости от значения какого-то выражения или от выполнения некоторого логического условия дальнейшие действия могут производиться по одному из нескольких направлений. Циклические алгоритмы применяются в тех случаях, когда требуется реализовать многократно повторяющиеся однотипные вычисления. Цикл это последовательность действий, которая может выполняться многократно, т.е. более одного раза. Различают: циклы с известным числом повторений (или со счетчиком); циклы с неизвестным числом повторений (циклы с предусловием и циклы с пост условием).
Подпрограммы. Вспомогательные алгоритмы и процедуры В теории алгоритмов известно понятие вспомогательного алгоритма. Вспомогательным называется алгоритм решения некоторой подзадачи из основной решаемой задачи. В таком случае алгоритм решения исходной задачи называется основным алгоритмом. Часто в программе некоторую последовательность действий приходится повторять несколько раз в разных местах программы. Чтобы программисту не приходилось тратить усилия и время на копирование этих инструкций, в каждом языке программирования высокого уровня, в том числе и в Паскале, предусмотрены средства, позволяющие выделить такие повторяющиеся куски программы в автономные алгоритмы или подпрограммы. Процедура – автономно выделенный алгоритм, который можно использовать как в разных местах одной программы, так и в разных программах. Различают две разновидности процедур. Процедуры, вычисляющие одно значение. Процедуры, вычисляющие несколько значений.
Подпрограммы. Вспомогательные алгоритмы и процедуры Обращение к процедуре инициирует следующие действия: Значения параметров-аргументов присваиваются соответствующим формальным параметрам. Выполняется тело процедуры (команды внутри процедуры). Значение результата передается соответствующему фактическому параметру, и происходит переход к выполнению следующей команды основного алгоритма. Использование процедур позволяет строить сложные алгоритмы методом последовательной детализации
Циклы со счетчиком. В циклах такого типа известно число повторений цикла, т.е. оно является фиксированным числом. В этом случае переменная, которая считает количество повторений (шагов) цикла, называется счетчиком цикла (или параметром цикла, или управляющей переменной цикла). Циклы с предусловием. Циклы с предусловием чаще всего используют тогда, когда неизвестно число повторений цикла. Циклы с предусловием это такие циклы, в которых до начала выполнения тела цикла проверяется условие выполнения следующего шага цикла. Если значение этого условия истинно (т.е. условие выполняется), то выполняется тело цикла. В теле цикла должно изменяться значение по крайней мере одной переменной, которая влияет на значение условия (иначе произойдет «зацикливание»). Далее опять проверяется условие выполнения цикла, и если значение условия ложно, то осуществляется выход из цикла. Циклы с постусловием. Этот тип цикла также используется при неизвестном заранее количестве повторений цикла, но в отличие от цикла с предусловием здесь условие на выход из цикла проверяется после того, как выполнились операторы тела цикла, поэтому хотя бы один раз тело цикла будет обязательно выполнено. Сложные циклы. Циклы, которые содержат внутри себя (в теле цикла) один или несколько других циклов, называются сложными или вложенными циклами.