Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
теория.pdf
Скачиваний:
484
Добавлен:
11.05.2015
Размер:
1.15 Mб
Скачать

2.3.3.Циклический вычислительный процесс

Циклический вычислительный процесс – процесс, в котором отдельные участки вычислений выполняются многократно.

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

Классификация циклов

Всоответствии со взаимным расположением циклов в теле программы или алгоритма различают следующие циклы:

1)простые – циклы, не содержащие внутри себя других циклов;

2)сложные – циклы, содержащие внутри себя другие циклы;

3)вложенные (внутренние) – циклы, входящие в состав других циклов (цикл в цикле);

4)внешние – циклы, не являющиеся составной частью других циклов, но содержащие в своем составе внутренние циклы.

Взависимости от местоположения условия выполнения цикла различают следующие циклы:

1)циклы с предусловием;

2)циклы с постусловием.

Всоответствии с видом условия выполнения циклы делятся на следующие

виды:

1)циклы с параметром;

2)итерационные циклы.

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

Для решения вопроса о том, сколько раз нужно выполнять цикл, используется анализ переменной (или нескольких переменных), называемой

параметром цикла.

В общем случае схема алгоритма циклического процесса с параметром цикла имеет вид, который представляет рисунок 2.35.

Блоки, выполняющие вычисления и изменение значения параметра цикла, составляют так называемое тело цикла – последовательность действий, которая выполняется многократно.

38

В терминах метода структурного программирования вышеприведенный

цикл называется циклом «До» (циклом с постусловием) – в нем тело цикла

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

Инициализация

Присвоение начального значения

параметру цикла

 

Вычисления

 

Изменение

Изменение значения параметра цикла

параметра цикла

 

нет

 

?

Проверка условия окончания цикла

да

 

Рисунок 2.35 – Обобщенная схема алгоритма циклического процесса

спараметром цикла (цикл с постусловием)

Вцикле «Пока» (цикле с предусловием) проверка условия выполнения цикла производится до тела цикла (рисунок 2.36).

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

Например, при вычислении суммы двадцати элементов массива заранее известно, что количество повторений тела цикла равно 20.

39

Инициализация

Присвоение начального значения

параметру цикла

да

Проверка условия выполнения

?

цикла

нет

 

Тело цикла

 

Рисунок 2.36 - – Обобщенная схема алгоритма

циклического процесса с предусловием)

Пример 2.4.

Алгоритм, содержащий сложный цикл с заданным числом повторений. Вычислить значение функции

I J

Y= ∏ ∑X ij

i=1 j =1

Пусть I = 10, J = 20. Тогда выражение для вычисления функции Y будет иметь вид:

Y = ( X11 + X12 + ... + X1( 20 ) ) ( X 21 + X 22 + ... + X 2( 20 ) ) ... ( X( 10 )1 + + X( 10 )2 + ... + X( 10 )( 20 ) ).

Схема алгоритма вычисления функции Y имеет вид, который иллюстрирует рисунок 2.37.

40

1

Начало

2

Ввод элементов Х

3

Y := 1 i := 1

4

S := 0 j := 1

5

S:= S+Xij 6

j := j + 1

нет

7

 

 

j > 20

8

 

да

 

Y := Y*S

 

 

9

 

 

i := i + 1

 

да

10

 

 

i > 10

 

11

нет

 

Вывод Y

 

 

Присвоение начального значения параметру i внешнего цикла и функции Y

Присвоение начального значения параметру j внутреннего цикла и сумме S

Вычисления во внутреннем цикле

Изменение параметра j внутреннего цикла

Проверка условия окончания внутреннего цикла

Вычисления во внешнем цикле

Изменение параметра i внешнего цикла

Проверка условия окончания внешнего цикла

12

Конец

I J

Рисунок 2.37 – Алгоритм вычисления функции Y = ∏ ∑X ij

i =1 j =1

41

Данный алгоритм содержит внешний цикл, в состав которого входит внутренний цикл. Параметром внешнего цикла является переменная i, параметром внутреннего цикла – переменная j. Блоки 5, 6 составляют тело внутреннего цикла, блоки 4 – 9 – тело внешнего цикла.

Алгоритм реализован с использованием циклов «До».

Переменные, служащие для накопления суммы, в исходном состоянии всегда устанавливаются в ноль (в примере 2.4 это S).

Переменные, служащие для формирования произведения, в исходном состоянии всегда устанавливаются в единицу (в примере 2.4 это Y).

Итерационные циклы

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

называется итерационным.

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

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

В общем виде итерационный процесс может быть представлен так, как иллюстрирует рисунок 2.38.

42

 

 

 

Присвоение начальных

Инициализация

 

 

 

 

значений

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Вычисления

 

 

 

 

 

 

 

 

 

Подготовка к следующей

 

 

 

 

 

 

Подготовка

 

итерации

 

 

 

 

 

 

 

Определение значения величины,

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Определение

 

 

 

 

влияющей на окончание процесса

 

 

 

 

 

 

нет

?

да

Проверка условия окончания цикла

Рисунок 2.38 – Обобщенная схема итерационного циклического процесса

Пример 2.5.

Алгоритм, содержащий сложный цикл с неизвестным числом повторений. Вычислить значение функции

Y = sin X

через разложение функции в бесконечный ряд

Y = sin X = X X 3 / 3! + X 5 / 5! X 7 / 7! + ...

Вычисления прекратить, когда разность между модулями двух соседних слагаемых станет меньше величины Eps = 0,0001.

43

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

В переменной Y накапливается значение суммы ряда. В переменной А1 хранится слагаемое, сформированное на предыдущей итерации и используемое

вкачестве исходной величины для вычисления слагаемого на данной итерации.

Впеременной А2 формируется слагаемое на данной итерации. Переменная i – служебная переменная, используемая для формирования знаменателя слагаемых и для определения выполненного числа итераций. В переменной Е формируется разность между соседними слагаемыми (с учетом их разнозначности). После окончания текущей итерации необходимо запомнить значение слагаемого, сформированное в переменной А2, иначе на следующей итерации оно потеряется. Поэтому значение переменной А2 присваиваем переменной А1.

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

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

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

Процесс прекращается при достижении необходимой детализации блоков

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

фрагмента алгоритма, т.е. решается более простая задача.

44

Начало

X, Eps

Y := X A1 := X i := 1

A2 := –A1 * X2

/(2 * i * (2 * i + 1))

i := i + 1

Y := Y+A2

E := A1+A2

A1 := A2

нет

|E|<Eps

Y, Eps, i

Конец

Присвоение начальных значений

Вычисления

Определение значения величины, влияющей на окончание процесса

Подготовка к следующей итерации

да

 

 

Проверка условия выхода

 

из цикла

 

 

 

Рисунок 2.39 – Алгортм вычисления функции Y = SinX

45

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]