Внутри алгоритма циклической структуры может быть помещен другой цикл – вложенный (внутренний) цикл. Вложенный цикл должен полностью находиться в области внешнего цикла. Вложенный цикл может быть один, но может быть и несколько вложенных циклов. Второй вложен в первый, третий – во второй и т.д. Ниже с помощью псевдокода представлена структура циклического алгоритма, содержащего несколько вложенных циклов:
Начало цикла 1
Начало цикла 2
Начало цикла 3
Тело цикла 3
Конец цикла 3
Конец цикла 2
Конец цикла 1
Для организации и внутреннего, и внешнего циклов могут использоваться разные типы алгоритмических структур (цикл с параметром, цикл с предусловием, цикл с постусловием).
На рис. 1 представлена блок-схема алгоритма с внутренним циклом.
В данном случае и внешний и внутренний циклы организованы на базе алгоритмической структуры «цикл с параметром».
Самый подробный урок про Блок-схемы, Понимание, Чтение и Создание блок-схем
Рисунок 1 – Блок-схема алгоритма с внутренним циклом на базе алгоритмической структуры «цикл с параметром»
На каждом шаге по внешнему циклу внутренний цикл выполняется несколько раз. Количество внутренних циклов на каждом внешнем цикле зависит от параметра внутреннего цикла.
Пусть, например, задано, что параметр внешнего цикла меняется от 1 до 5 с шагом 1, а параметр внутреннего цикла – от 1 до 10 с шагом 1.
Это означает, что на каждом шаге по внешнему циклу внутренний цикл будет выполняться 10 раз. Так как внешний цикл должен выполниться 5 раз, то внутренний цикл выполнится при этом 50 раз.
Источник: xn--d1acjinvhdf.xn--p1ai
Блок схема программы цикл
Алгоритм, в котором действия повторяются , называется циклическим.
1. Цикл с предусловием.
Действия в данном цикле повторяются, пока выполняется условие. Условие проверяется в самом начале цикла.
В общем виде цикл реализуется записью:
while do ;
Если тело цикла содержит более одного действия, то необходимо использовать операторные скобки:
while do
begin
;
;
.
;
end;
2. Цикл с постусловием.
Действия в данном цикле повторяются, до тех пор, пока не выполнится условие. Условие проверяется в конце цикла.
В общем виде цикл записывается так:
repeat
;
until ;
3. Цикл с параметром.
Источник: www.sites.google.com
Блок-схемы для начинающих (Блок схемы алгоритмов)
Циклы. Методы решения задач
многократное повторение одних и тех же
действий
Операторы, с помощью которых реализуются циклы:
1) оператор цикла с предусловием
while
2) оператор цикла с параметром
for..to/downto
3) оператор цикла с последующим условием
repeat….until
3. Пример 1. Найти сумму 10 первых натуральных чисел: S=1+2+3+4+5+6+7+8+9+10
Program Summa;
Var S: integer;
Begin
S:=1+2+3+4+5+6+7+8+9+10;
Writeln(S);
End.
Что необходимо изменить
для получения суммы 100 первых чисел?
4. Пример 1. Найти сумму 10 первых натуральных чисел : S=1+2+3+4+5+6+7+8+9+10
Алгоритм:
Шаг
Сумма
(S)
Слагаемое
(i)
S:=0;
сумма>S значение,
• Присвоить
переменной
равное 0 (S:=0).
i:=1;
1
0
1
2
0+1=1
2
while i Присвоить переменной i
begin
(слагаемое)
значение, равное 1
(i:=1).
S:=S+i;
3
1+2=3
3
4
3+3=6
4
5
6+4=10
5
6
10+5=15
6
7
15+6=21
7
8
21+7=28
8
9
28+8=36
9
10
36+9=45
10
11
45+10=55
11
i:=i+1;
Добавить к сумме значение
end;
слагаемого
i (S:= S+i).
writeln(S); • Увеличить i на 1 (i:=i+1).
найденной суммы>
Повторить шаги 3 и 4.
5. Задача. Найти сумму целых положительных чисел от 1 до n. S=1+2+3+4+…+n Решение:
6. Задача. Найти сумму целых положительных чисел от 1 до n. S=1+2+3+4+…+n Блок-схема:
Начало
Program Summa;
Var i, n, S : integer;
Begin
readln(n);
S:=0;
i:=1;
while i begin
S:=S+i;
i:=i+1;
end;
writeln(S);
end.
Ввод n
S:= 0
i:= 1
Да
Нет
i Вывод S
S:=S+i
Конец
i:=i+1
7. Выполнение программы для n=10
8.
Цикл с
параметром
9. Оператор цикла с параметром (форма to)
Общий вид цикла с параметром
for i:= imin to imax do
begin
операторы (тело цикла);
end;
Блок-схема цикла с параметром
i:= i min
Нет
Да
i Примечание. Параметр цикла i
изменяется от минимального до
максимального с шагом равным 1.
Тело цикла
i:=i+1
10. Выполнение оператора цикла с параметром (форма to)
1. Параметру i присваивается значение imin ;
Блок-схема цикла с параметром
2. Проверяется условие i i:= i min
3. Если да , то выполнится оператор,
стоящий после слова do (т.е. выполняется
тело цикла).
4. Значение параметра i увеличивается на 1 .
Нет
i 5. Снова проверяется условие i 6. Когда условие i Тело цикла
i:=i+1
11. Оператор цикла с параметром (форма to)
Примеры
Сколько раз выполнятся команды в цикле ?
for i:= 1 to 10 do
10
for i:= 5 to 10 do
6
for i:= 7 to 14 do
8
for i:= 3 to 12 do
10
Примечание. Параметр цикла i изменяется от минимального до максимального с
шагом равным 1.
12. Оператор цикла с параметром (форма downto)
Общий вид цикла с параметром
for i:= imax downto imin do
begin
операторы (тело цикла);
end;
Блок-схема цикла с параметром
i:= i max
Нет
Да
i>= i min
Примечание. Параметр цикла i
изменяется от максимального до
минимального с шагом равным -1.
Тело цикла
i:=i-1
13. Выполнение оператора цикла с параметром (форма downto)
1. Параметру i присваивается значение
imax;
Блок-схема цикла с параметром
2. Проверяется условие i>=imin.
i:= i max
3. Если да , то выполнится оператор,
стоящий после слова do (т.е.
выполняется тело цикла).
4. Значение параметра i уменьшается
на единицу.
5. Снова проверится условие i>=imin и т.
д.
Нет
i>= i min
Тело цикла
i:=i-1
14. Оператор цикла с параметром (форма downto)
Примеры
Сколько раз выполнятся команды в цикле ?
for i:=10 downto 1 do
10
for i:= 9 downto 5 do
5
for i:= 7 downto 1 do
7
for i:= 11 downto 3 do
9
Примечание. Параметр цикла i изменяется от минимального до максимального
с шагом равным -1.
15. Важно помнить!
1. Не рекомендуется изменять (i) управляющую переменную цикла в теле цикла
с помощью команды присваивания. Это может привести к «зацикливанию»
программы (бесконечному повторению тела цикла) либо к неверным
результатам выполнения программы.
2. Если в заголовке оператора for..to начальное значение переменной цикла
больше конечного значения, то тело цикла не выполнится ни разу.
3. Если в заголовке оператора for..downto начальное значение переменной цикла
меньше конечного значения, то тело цикла не выполнится ни разу.
4. При выходе из цикла текущее значение переменной цикла равно конечному
значению в операторе for..to и наоборот в операторе for..downto.
5. Телом цикла может быть не один оператор, а группа операторов
(составной оператор), которую обязательно надо заключать в
операторные скобки begin… end.
16. Задача. Найти сумму целых положительных чисел от 1 до n. S=1+2+3+4+…+n Решение:
17. Блок-схема задачи : S=1+2+3+…+n
18. Выполнение программы при n=10
19. Пример 2. Вывести на экран числа 5, 6, 7, 8, 9.
20. Пример 2. Вывести на экран все числа от n до m (n
Пример 2. Вывести на экран все
числа от n до m (n
Начало
program z;
var i, n, m :integer;
Ввод n, m
Begin
readln (n, m);
i:= n
for i:=n to m do
begin
writeln(i);
Да
Нет
i end;
Вывод i
end.
Конец
i:=i+1
21. Контрольные вопросы
1. В каких случаях в программе используется оператор for?
2. Какие формы оператора for вы знаете?
3. Чем отличается формы «to» и «downto» оператора for ?
4. Можно ли изменять переменную-параметр цикла в теле цикла?
5. Какой тип данных может иметь переменная цикла?
22. Задания
1. Сколько раз выполнится тело цикла: For n:=3 to 6 do
begin
write (’*’);
end;
2. Что будет выведено на экран монитора в результате выполнения цикла:
For i:=1 to 5 do
begin
writeln (i);
end;
3. Какая будет печать? (в строчку или в столбик?)
23. Задание в классе
Решить задачи из задачника:
1. Задача For4 (For15)
2. Задача For5 (For16)
24. Домашнее задание
• Выучить конспект.
• Составить алгоритм (программу) и блок-схему для
задачи:
Вывести на экран N первых натуральных чисел
Источник: ppt-online.org