Просмотр содержимого документа
«Программирование циклических алгоритмов»
Циклические алгоритмы
Для реализации повторяющихся действий существуют специальные алгоритмические структуры, получившие название – циклы или команды повторения.
Виды циклических алгоритмов
Цикл с параметром
Цикл с постусловием
Цикл с
предусловием
Условие
Серия команд
i,a,b,h
нет
да
Условие
да
Серия команд
Серия команд
нет
Цикл типа ДЛЯ
Цикл типа ДО
Цикл типа Пока
Цикл с предусловием ( типа « пока» )
Пока (условие)
нц
Серия команд;
кц
нет
Условие
да
Запись на языке программирования Pascal:
Серия команд
while условие do
begin
Серия команд;
end;
while условие do
begin
Серия команд;
end;
Обратите внимание
- Цикл заканчивается, когда условие становится не верным (ложным).
- Если условие с самого начала ложно, то серия команд не выполняется ни разу .
Цикл с постусловием ( типа «До» )
В алгоритмическом языке нет команды которая могла бы описать данную структуру, но ее можно выразить с помощью других команд( ветвления).
Серия команд
Условие
да
Запись на языке программирования Pascal:
repeat
Серия команд;
until условие
нет
repeat
Серия команд;
until условие
Обратите внимание
- Серия команд между repeat и until выполняется хотя бы один раз .
- Цикл заканчивается когда, условие становится верным (истинным) .
Циклы типа repeat и while , используются в программе, если надо провести некоторые повторяющиеся вычисления (цикл), однако число повторов заранее не известно и определяется самим ходом вычисления .
Цикл с параметром (типа «ДЛЯ»)
Для i от a до b шаг h делай
Нц
Cерия команд;
кц
i:= а, b, h
Серия команд
h = 1
h = -1
for i:= b do wnto a do
for i:= a to b do
begin
begin
Cерия команд;
Cерия команд;
end;
end;
Пример:
Вычислить произведение чисел от 1 до 5 используя различные варианты цикла.
Математическая модель:
Р = 1· 2· 3· 4· 5=120
«Пока»
Шаг
1
Операция
Р
2
P:=1
3
i:=1;
1
i
4
Проверка условия
1
i
5
P:=P*I
i
1
1
P:=P*I
i:=i+1
6
i
i:=i+1
P:=P*I
2
i
1 (истина)
7
8
P:=P*I
6
i:=i+1
i
1
2 (истина)
2
i
3 (истина)
i:=i+1
P:=P*I
24
P:=P*I
120
i:=i+1
4 (истина)
3
4
i:=i+1
5 (истина)
5
6 (ложь)
нач
P:=1
i:=1
нет
i
да
P:=P*i
i:=i+1
P
кон
5 2 6 i5 P:=P*i 6 i:=i+1 7 i:=i+1 P:=P*i i5 3 24 4 i5 25, нет (ложь) i:=i+1 120 i5 5 35, нет (ложь) 6 45, нет (ложь) 55, нет (ложь) 6 (истина) нач нач нач нач P:=1 P:=1 P:=1 P:=1 i:=1 i:=1 i:=1 i:=1 P:=P*i P:=P*i P:=P*i P:=P*i i:=i+1 i:=i+1 i:=i+1 i:=i+1 нет нет нет нет i5 i5 i5 i5 да да P P P P кон кон кон кон " width="640"
«ДО»
«ДО»
Шаг
1
Операция
P:=1;
Р
2
3
i
1
i:=1;
Проверка условия
4
1
P:=P*i;
i:=i+1;
1
1
5
P:=P*i
2
P:=P*i
i:=i+1
i5
2
6
i5
P:=P*i
6
i:=i+1
7
i:=i+1
P:=P*i
i5
3
24
4
i5
25, нет (ложь)
i:=i+1
120
i5
5
35, нет (ложь)
6
45, нет (ложь)
55, нет (ложь)
6 (истина)
нач
нач
нач
нач
P:=1
P:=1
P:=1
P:=1
i:=1
i:=1
i:=1
i:=1
P:=P*i
P:=P*i
P:=P*i
P:=P*i
i:=i+1
i:=i+1
i:=i+1
i:=i+1
нет
нет
нет
нет
i5
i5
i5
i5
да
да
P
P
P
P
кон
кон
кон
кон
« ДЛЯ»
Шаг
1
Операция
P:=1
Р
2
i:=1
3
1
i
P:=P*i
Проверка условия
i:=2
4
1
1
P:=P*i
i:=3
5
2
2
P:=P*i
i:=4
6
3
6
P:=P*i
i:=5
4
P:=P*i
24
120
5
нач
P:=1
I:= 1, 5
P:=P*i
P
кон
5 i:=i+1 P кон P P кон кон " width="640"
«Пока»
«ДО»
« ДЛЯ»
нач
нач
нач
P:=1
P:=1
P:=1
i:=1
i:=1
I:= 1, 5
нет
i
P:=P*i
P:=P*i
да
i:=i+1
P:=P*i
нет
да
i5
i:=i+1
P
кон
P
P
кон
кон
5; Write (‘ P=’, P); end . Program Pr3; Var i: integer; Begin P:=1; For i:=1 to 5 do P:=P*i; Write (‘P=’, P); end . " width="640"
«Пока»
«ДО»
« ДЛЯ»
Program Pr1;
Var i: integer;
Begin
P:=1;
i:=1;
While i do
begin
P:=P*i;
i:=i+1;
end;
Write (‘P=’, P);
end .
Program Pr2;
Var i: integer;
Begin
P:=1;
i:=1;
Repeat P:=P*i;
i:=i+1;
until i5;
Write (‘ P=’, P);
end .
Program Pr3;
Var i: integer;
Begin
P:=1;
For i:=1 to 5 do
P:=P*i;
Write (‘P=’, P);
end .
Задача
Вывести на экран числа от 1 до 5 в:
a) прямом порядке;
b) обратном порядке.
Математическая модель:
a) 1 2 3 4 5
b) 5 4 3 2 1
Для чисел в прямом порядке h = 1
Для чисел в обратном порядке h= - 1
нач
нач
I:= 5, 1,-1
I:= 1, 5,1
i
i
кон
кон
Program Pr4;
Var i: integer;
Program Pr5;
Begin
Var i: integer;
Begin
For i:=1 to 5 do
Write (i);
For i:=5 downto 1 do
Write (i);
end .
end .
В результате на экране будет:
1 2 3 4 5
В результате на экране будет:
5 4 3 2 1
И так мы рассмотрели следующие вопросы:
- Алгоритмическая структура цикл;
- Виды алгоритмических структур:
- Цикл с предусловием;
- Цикл с постусловием;
- Цикл с параметром;
- Рассмотрели способы записи данных структур;
- Разобрали примеры решения задач с помощью этих структур.