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

Download Report

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

Итерационные циклы
Чем отличаются итерационные
циклы от цикла с параметром?
 Вспомним определения цикла с
параметром:
 Это цикл в котором серия команд
выполняется заданное число раз.
Особенность итерационного цикла в том, что
число повторений тела цикла неизвестно.
 Возникает вопрос????
 А когда выходить из цикла?
 На каждом шаге вычислений происходит
последовательное приближение и проверка
условия достижения искомого
результата.
 Другими словами буду находиться в цикле
пока не будет достигнуто условие.
 Поэтому подобные циклы имеют название
– цикл «Пока»
Определение:
 Алгоритм, в состав которого входит
итерационный цикл (пока), называется
итерационным алгоритмом.
ВАЖНО!!!
В итерационных алгоритмах необходимо
обеспечить обязательное достижение
условия выхода из цикла. В противном случае
произойдет зацикливание алгоритма, т.е. не
будет выполняться основное свойство
алгоритма – результативность.
Итерационные циклы бывают: с
постусловием и предусловием.
 Цикл с постусловием
Действие 1
 Цикл с предусловием
+
условие
Действие 1
Действие 2
выход
-
+
условие
Выход
Действие 2
Для лучшего понимания назовем один
цикл «Обжора», а другой «Транжира»
Пришел обжора на вечеринку
Обжора кушает
Пришел транжира в казино
+
Деньги есть?
Обжора кушает
Играю в рулетку
Банкрот
-
+
Играю в карты
Все съел?
наелся
Какой это цикл?
Какой это цикл?
Сравнение циклов:
Постусловие
 Условие находится
Предусловие
 Условие находится
перед серией команд.
после серии команд.
 Тело цикла может не
 Тело цикла
выполниться ни разу
выполняется 1 раз
обязательно.
Цикл «Пока» похож на ветвление, но в ветвлении
веточки сходятся, в цикле нет.
Условие влияет на выход из цикла.
Синтаксис циклов
DO (делай)
<тело цикла>
LOOP UNTIL <условие>
DO WHILE <условие>
<тело цикла>
LOOP
WHILE <условие>
<тело цикла>
WEND
Где используются эти циклы?
Постусловие
Замок на ввод данных
DO
INPUT «Введи а»; а
Ввод a<>0
-
LOOP Until a=0
+
A=0
Определить значение переменной S после
выполнения следующих операторов
S=0
I=1
Do
S=S+5
I=I-1
LOOP UNTIL I<=1
S=5, т.к. выполниться тело цикла 1 раз.
Что нужно изменить, чтобы S было равно 10, 15
Предусловие
Дана последовательность 5,9,13,17…
Составить программу, определяющую,
сколько слагаемых надо взять, чтобы
получить сумму равную 324
Решаем задачу:
Что дано:
начальное значение а=5
Шаг В=4
Номер элемента I=1
Начальное значение суммы S=A
Найти I, при котором сумма будет равно 324
начало
A=5
B=4
I=1
S=A
+
I=I+1
A=A+B
S=S+A
S<>324
I
конец
CLS
A=5
B=4
I=1
S=A
DO WHILE S<324
I=I+1
A=A+B
S=S+A
LOOP
PRINT «Число слагаемых I=“;I
END
Домашнее задание:
 Дан ряд чисел: 2, 4, 6, 8……20. Найти
сумму ряда, используя итерационные
циклы (2 способа: с пост условием и
предусловием)