Разделы презентаций


Циклический алгоритм

Содержание

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

Слайды и текст этой презентации

Слайд 1ЦИКЛИЧЕСКИЙ
АЛГОРИТМ

ЦИКЛИЧЕСКИЙ АЛГОРИТМ

Слайд 2Большинство методов решения задач сводится к многократным повторениям некоторой группы

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

циклом.

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

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

Слайд 3В зависимости от того, как задано условие выхода из цикла,

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

арифметические циклы или циклы с

параметром;
логические циклы:
a) циклы с предусловием (циклы ПОКА);
b) циклы с постусловием (циклы ДО).
В зависимости от того, как задано условие выхода из цикла, различают циклические алгоритмы следующих видов: арифметические циклы

Слайд 4В таком циклическом алгоритме заранее известно число повторений цикла. Параметр

цикла в этом случае носит название счетчика выполнений цикла.
Обозначим

параметр цикла (счетчик) как переменную с именем N. Пусть

M1 - начальное значение счетчика (до первого выполнения цикла),

M2- конечное значение (при последнем выполнении цикла), т.е. выход из цикла происходит в том случае, если значение параметра цикла больше, чем M2,

M3 - шаг изменения счетчика от цикла к циклу.

В таком циклическом алгоритме заранее известно число повторений цикла. Параметр цикла в этом случае носит название счетчика

Слайд 5Тогда параметр цикла N изменяется при каждом повторении цикла от

значения M1 до значения M2 с шагом M3, что можно

записать следующим образом

N= M1, M2, M3

В блок-схемах этой записи соответствует блок модификации:

N = M1, M2, M3


Для каждого значения счетчика цикла N выполняется тело цикла. Число повторений цикла может быть подсчитано по формуле


Тогда параметр цикла N изменяется при каждом повторении цикла от значения M1 до значения M2 с шагом

Слайд 6Словесное описание арифметического цикла можно сформулировать так: изменяя параметр цикла

N от M1 до M2 с шагом M3, выполнять k

раз группу шагов алгоритма (тело цикла).

На языке высокого уровня Фортран оператор арифметического цикла может быть записан в виде:

DO N=M1, M2, M3 ! начало цикла

……ТЕЛО
……ЦИКЛА

END DO ! конец цикла

Словесное описание арифметического цикла можно сформулировать так: изменяя параметр цикла N от M1 до M2 с шагом

Слайд 7При первом прохождении цикла значению параметра цикла N присваивается начальное

значение M1.
С этим значением выполняются все операторы тела цикла,

пока программа не достигнет конца цикла END DO,

затем управление передается снова на начало цикла, при этом параметр цикла N увеличивается на шаг изменения M3, т.е. N=M1 + M3.

Таким образом, при втором прохождении цикла параметр изменился, и с этим новым значением опять выполняются все операторы тела цикла.

При третьем прохождении цикла N принимает значение N = M1 + 2*M3, и т.д. до тех пор, пока параметр цикла не станет равным M2 (последнее повторение цикла).

При первом прохождении цикла значению параметра цикла N присваивается начальное значение M1. С этим значением выполняются все

Слайд 8Перед каждым повторением тела цикла значение параметра цикла N сравнивается

с конечным значением M2,

как только N становится больше M2, цикл завершается (N=M2 – последнее повторение тела цикла).

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

Следует также отметить, что M1, M2, M3 могут быть арифметическими выражениями.

Если шаг изменения счетчика равен M3=1, его можно опустить, т.е. начало цикла будет записано так: DO N=M1, M2.

Завершает цикл оператор END DO

Перед каждым повторением тела цикла значение параметра цикла N сравнивается с конечным значением M2,

Слайд 9Требуется несколько раз для разных значений x рассчитать значения функции

y(x), т.е. по сути, составить таблицу значений функции на заданном

промежутке аргумента x. Рассмотрим эту задачу на примере.

Пример 1. Вычислить значения функции y(x), если x определен на промежутке x ∈[0,1;1,0] с изменяющимся шагом переменной x равным h=0,1

Требуется несколько раз для разных значений x рассчитать значения функции y(x), т.е. по сути, составить таблицу значений

Слайд 10Код программы
Program Primer_1
x=0.1; xk=1.0; h=0.1
k = int((xk -

x)/h) + 1
DO n = 1, k
y =atan((1 –

x) / (1 + x))

print *, “x=“ ,x, ” y=“ ,y

x = x + h

END DO

end

Код программыProgram  Primer_1x=0.1; xk=1.0; h=0.1 k = int((xk - x)/h) + 1DO n = 1, k

Слайд 111. Внутри цикла нельзя принудительно изменять переменные цикла N, M1,

M2, M3.
Пример фрагмента программы:
……………
DO K=1, 30
X= K+Y

IF (K = = 10) K = K+11 ! не верно !
ENDDO
……………

Цикл записан неправильно, так как переменной цикла K присвоено новое значение внутри цикла.

1. Внутри цикла нельзя принудительно изменять переменные цикла N, M1, M2, M3.Пример фрагмента программы:……………DO  K=1, 30

Слайд 122. Если условный блочный оператор находится в теле цикла DO,

то и заканчиваться он должен также в теле цикла. Пример

фрагмента программы:

DO k=2, 100, 2 ! начало цикла

IF (x.gt.1) THEN ! условный оператор
y1=y1*x

ELSE ! ветвь 2
y1=y1 + x

END IF ! конец условного оператора
END DO ! конец цикла

2. Если условный блочный оператор находится в теле цикла DO, то и заканчиваться он должен также в

Слайд 133. Если оператор цикла находится в условном блочном операторе, он

должен начинаться и заканчиваться в одном и том же блоке.

Пример в общем виде:

IF (ЛВ) THEN ! условный оператор

DO I=M1, M2 ! начало цикла
…… тело
…… цикла
ENDDO ! конец цикла

ELSE ! ветвь 2
…… операторы
…… ветви 2
END IF ! конец условного оператора

3. Если оператор цикла находится в условном блочном операторе, он должен начинаться и заканчиваться в одном и

Слайд 144. Возможен досрочный выход из цикла по некоторому условию с

помощью оператора EXIT.
В этом случае параметр цикла сохраняет значение,

полученное в последнем выполненном шаге перед выходом из цикла. После выхода из цикла выполняется оператор, следующий за ENDDO. Например,

N=700
do m=100, 1000, 50

N = N – m
if (N < = 500) EXIT !досрочный выход
enddo

4. Возможен досрочный выход из цикла по некоторому условию с помощью оператора EXIT. В этом случае параметр

Слайд 15Рассмотрим данный пример по шагам:
1 шаг. N присваивается значение N

= 700.
Начинается выполнение цикла, т.е. параметру цикла m присваивается значение

равное m=100.
Вычисляется значение переменной N=N–m:
N становится равной N = 700 – 100 = 600.
Проверяется условие N≤500, оно не выполняется, следовательно, оператор EXIT пропускается. Программа возвращается на начало цикла DO.
2 шаг. N = 600, m = 150,
N = 600 – 150 = 450 => N < 500
Условие выполнено и, следовательно, выполняется оператор EXIT, происходит досрочное завершение цикла.
Рассмотрим данный пример по шагам:1 шаг. N присваивается значение N = 700.Начинается выполнение цикла, т.е. параметру цикла

Слайд 165. Если нужно пропустить часть операторов цикла и перейти к

выполнению следующего шага цикла, то следует использовать оператор CYCLE.
Оператор

CYCLE передает управление программой на конечный оператор ENDDO, который возвращает выполнение программы на начало цикла DO к следующему шагу.

Например, рассмотрим фрагмент программы:

L =0; K = 0
DO M = 1, 10, 2

L = L + M ** 2
IF (mod(L,2) = = 0) CYCLE ! переход к следующему
! шагу цикла

K = K + L
END DO

При четных значениях L не будет выполняться оператор K = K + L.

5. Если нужно пропустить часть операторов цикла и перейти к выполнению следующего шага цикла, то следует использовать

Слайд 17В таком циклическом алгоритме, как правило, заранее неизвестно число повторений

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


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

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

В таком циклическом алгоритме, как правило, заранее неизвестно число повторений цикла, и выполнение тела цикла возможно при

Слайд 18Оператор цикла с предусловием в Фортране в общем виде записывается

следующим образом:
DO WHILE (ЛВ)
…………ТЕЛО
………….ЦИКЛА
END DO
Тело цикла выполняется, пока логическое выражение

(ЛВ) истинно.

Изменим код программы примера 1 с использованием цикла с предусловием. В качестве параметра цикла выберем переменную x.

Значение x в каждом цикле можно вычислить по рекуррентной формуле x=x+h, начальное значение x=x1. Выполнение цикла происходит пока x≤xk.

Оператор цикла с предусловием в Фортране в общем виде записывается следующим образом:DO WHILE (ЛВ)…………ТЕЛО………….ЦИКЛАEND DOТело цикла выполняется,

Слайд 19При использовании в качестве параметра цикла переменной действительного типа приращение

параметра цикла вычисляется приближенно.
Поэтому конечное значение параметра цикла необходимо

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

В примере 2 конечное значение параметра цикла равно не xk, а xk+h/10 (выделено красным цветом в примере).

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

Слайд 20Пример 2. Код программы табулирования функции:
Program Primer_2
x=0.1; xk=1.0; h=0.1
DO

WHILE (x

+ x))

print *, “x=“ ,x, ” y=“ ,y

x = x + h

END DO

end

Пример 2. Код программы табулирования функции:Program  Primer_2x=0.1; xk=1.0; h=0.1DO WHILE (x

Слайд 21При организации цикла с постусловием, условие выхода из цикла проверяется

после каждого выполнения цикла.
Поэтому, в отличие от предыдущего случая

(цикла ПОКА), тело цикла будет выполнено хотя бы один раз.

Блок – схема цикла с постусловием.

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

Слайд 22Цикл с постусловием (цикл ДО) организуется в Фортране с помощью

условного логического оператора IF и оператора безусловного перехода GOTO M.


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

Оператор безусловного перехода GOTO M передает управление программой оператору с меткой M.

Опять изменим программу табулирования функции (пример 1), используя вместо арифметического оператора цикла, цикл с постусловием.

Цикл с постусловием (цикл ДО) организуется в Фортране с помощью условного логического оператора IF и оператора безусловного

Слайд 23Пример 3. Код программы табулирования функции:
Program Primer_3
x=0.1; xk=1.0; h=0.1
10

y =atan((1 – x) / (1 + x))

!начало цикла

print *, “x=“ ,x, ” y=“ ,y

x = x + h

IF (x <= xk+h/10) GOTO 10 ! конец цикла

end

Пример 3. Код программы табулирования функции:Program  Primer_3x=0.1; xk=1.0; h=0.110  y =atan((1 – x) / (1

Слайд 24Заметим, что во всех циклах происходит присваивание начального значения x

и шага изменения параметра h цикла до его начала. До

начала цикла следует задать начальное значение параметра x=x1, а внутри цикла предусмотреть его изменение, увеличивая значение x при каждом повторении цикла на шаг h, т.е. x=x+h.

При работе с циклами с предусловием и постусловием надо следить, чтобы логическое выражение ЛВ обязательно рано или поздно приняло значение ЛОЖЬ, иначе цикл будет выполняться бесконечное число раз (зацикливание!).

Заметим, что во всех циклах происходит присваивание начального значения x и шага изменения параметра h цикла до

Обратная связь

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

Email: Нажмите что бы посмотреть 

Что такое TheSlide.ru?

Это сайт презентации, докладов, проектов в PowerPoint. Здесь удобно  хранить и делиться своими презентациями с другими пользователями.


Для правообладателей

Яндекс.Метрика