Структура и основные типы циклов

В алгоритмах циклической структуры выполнение одних и тех же действий может повторяться несколько раз. Организация циклического вычислительного процесса выполняется в несколько этапов:

1-й этап – подготовка к выполнению цикла. На этом этапе задаются начальные значения для параметра цикла и переменных, использующихся для хранения накапливающихся величин (сумма, количество или произведение вычисляемых величин). Параметр цикла – это переменная, на основе которой строится цикл. Она должна удовлетворять трем условиям: являться исходной величиной для выполнения вычислений; изменяться по определенному закону (чаще всего это закон арифметической прогрессии); оказывать влияние на условие завершения повторяющихся вычислений.

2-й этап – тело цикла. Оно содержит арифметические и логические действия, которые могут повторяться определенное количество раз. В конце тела цикла обязательно должен быть блок, в котором изменяется значение параметра цикла.

3-й этап – условие выхода из цикла, которое предотвращает бесконечное выполнение цикла. С помощью этого условия проверяется надо ли повторять вычисления, или выходить из цикла.

Блок-схема изображающая этапы организации цикла представлена на рис. 4.1.1. Такая организация циклического вычислительного процесса называется циклом с постусловием. В этом случае, после каждого выполнения тела цикла, проверяется условие выхода из цикла. Если оно не выполняется, то происходит возврат на начало тела цикла и повторение вычислений. Когда условие выхода будет выполнено, произойдет завершение работы и выход из цикла. Наличие линии возврата в блок-схеме является основным признаком циклического вычислительного процесса.

Кроме цикла с постусловием также существуют цикл с предусловием и цикл «Для».

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

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

Цикл, в состав которого не входят другие циклы, называется простым.

Пример 4.1. Составить блок-схему алгоритма, вычисляющего значения функции у = 2∙ x + 0.5, при различных значениях х, принадлежащих интервалу 1≤ x ≤3, hx = 0.5.

Для решения поставленной задачи необходимо организовать перебор всех возможных значений х из заданного интервала с указанным шагом (1; 1.5; 2; 2.5; 3). Для каждого полученного х вычислить значение функции у, т.е. организовать циклический вычислительный процесс. Блок-схема алгоритма, в которой используется цикл с постусловием, приведена на рисунке 4.1.3.

Исходными данными для решения поставленной задачи являются xn, xk, hx (начальное, конечное значения х из заданного интервала и шаг изменения х), которые вводятся в блоке 2. В нашем случае необходимо будет ввести xn =1, xk =3, hx =0.5.

Такая организация ввода исходных данных обеспечивает соответствие блок-схемы двум свойствам алгоритма – определенность и массовость, и в дальнейшем будет называться составлением алгоритма в «общем виде» (все исходные данные должны вводиться, а не присваиваться в процессе выполнения алгоритма).

Затем происходит подготовка к выполнению цикла – блок 3, в котором параметру цикла присваивается начальное значение. В качестве параметра цикла выбрана переменная х, удовлетворяющая трем условиям (х является исходным значением для вычислений, изменяется по закону арифметической прогрессии, и оказывает влияние на завершение работы цикла). После этого начинается тело цикла (блоки 4-7). Вычисляется значение y (блок 4). Рассчитанное значение у выводится на экран одновременно с соответствующим значением параметра цикла х (блок 5). Происходит изменение параметра цикла (блок 6), таким образом, получается следующее значение х из заданного интервала. В конце тела цикла стоит условие выхода из цикла x > xk (блок 7), с помощью которого проверяется, не вышло ли новое значение х за правую границу заданного интервала. Если значение х не превышает хk, то происходит возврат на начало тела цикла (блок 4) и повторяются те же самые действия. В случае выполнения условия происходит выход из цикла (переход в блок 8) и алгоритм завершает свою работу.

Однократное выполнение тела цикла называется шагом. За один шаг вычисляется одно значение результирующей функции при одном (текущем) значении параметра цикла. Результаты пошагового выполнения цикла, приведенного на рис. 4.1.3, представлены в таблице 4.1.

Таблица 4.1. Пошаговое выполнение цикла

№ шага Текущее значение х (в начале цикла) Вычисленное значение у Новое значение х (в конце цикла) Результат проверки условия выхода из цикла (x > xk)
  1 (xn) 2,5 1,5 Ложь
  1,5 3,5   Ложь
    4,5 2,5 Ложь
  2,5 5,5   Ложь
  3 (xk) 6,5 3,5 Истина

Количество шагов выполнения цикла N можно вычислить до начала работы алгоритма по следующей формуле (1):


где ] [ обозначают целую часть выражения.

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

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


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: