Циклические алгоритмы
ВЕСНА ЛЕТООСЕНЬ ЗИМА Сколько циклических алгоритмов можно увидеть вокруг, если внимательно посмотреть на события: чередование времен года
посещения магазинов, школы или секции, получение за контрольные оценок и др.
а) Пока не сдал выпускные экзамены делай начало готовь уроки; посещай школу; конец; б) Пока есть желание, возможность и здоровье делай начало посещай спортивные занятия; конец;
Для реализации повторяющихся действий существуют специальные алгоритмические структуры, получившие название – циклы или команды повторения.
Цикл типа Пока Цикл типа ДО Цикл типа ДЛЯ Условие Серия команд да нет Серия команд i, a, b, h Условие Серия команд да нет Виды циклических алгоритмов Цикл с предусловием Цикл с постусловием Цикл с параметром
Виды циклических алгоритмов Цикл с предусловием Цикл с постусловием Цикл с параметром Цикл типа ПокаЦикл типа ДОЦикл типа ДЛЯ Условие Серия команд да нет Условие Серия команд да нет Серия команд i,a,b,h
Цикл с предусловием (типа «пока» ) Условие Серия команд да нет Пока (условие) нц Серия команд; кц while условие do begin Серия команд; end; Запись на языке программирования Pascal:
Обратите внимание 1.Цикл заканчивается, когда условие становится не верным (ложным). 2.Если условие с самого начала ложно, то серия команд не выполняется ни разу. while условие do begin Серия команд; end;
Условие Серия команд да нет В алгоритмическом языке нет команды которая могла бы описать данную структуру, но ее можно выразить с помощью других команд( ветвления). repeat Серия команд; until условие Цикл с постусловием ( типа «До») Запись на языке программирования Pascal:
Обратите внимание Серия команд между repeat и until выполняется хотя бы один раз. Цикл заканчивается когда, условие становится верным (истинным). repeat Серия команд; until условие
Циклы типа repeat и while, используются в программе, если надо провести некоторые повторяющиеся вычисления (цикл), однако число повторов заранее не известно и определяется самим ходом вычисления.
Серия команд i:= а, b, h Для i от a до b шаг h делай Нц Cерия команд; кц Цикл с параметром (типа «ДЛЯ») for i:= b downto a do begin Cерия команд; end; for i:= a to b do begin Cерия команд; end; h = 1 h = -1
Пример: Вычислить произведение чисел от 1 до 5 используя различные варианты цикла. Математическая модель: Р = 1· 2· 3· 4· 5=120
«Пока» нач i:=1 P:=1 i
ШагОперацияРiПроверка условия 1P:=1;1 2i:=1;11 3P:=P*i; i:=i+1; i>5 12 2>5, нет (ложь) 4P:=P*i i:=i+1 i> >5, нет (ложь) 5P:=P*i i:=i+1 i> >5, нет (ложь) 6P:=P*i i:=i+1 i> >5, нет (ложь) 7P:=P*i i:=i+1 i> кон P нет нач i:=1 P:=1 P:=P*i i:=i+1 i>5 кон P нет да «ДО» нач i:=1 P:=1 P:=P*i i:=i+1 i>5 кон P нет нач i:=1 P:=1 P:=P*i i:=i+1 i>5 кон P нет да
« ДЛЯ» нач P:=1 I:= 1, 5 P:=P*i кон P ШагОпера ция РiПроверка условия 1P:=11 2i:=1 P:=P*i1 1 3i:=2 P:=P*i2 2 4i:=3 P:=P*i6 3 5i:=4 P:=P*i24 4 6i:=5 P:=P*i120 5
«Пока» «ДО» « ДЛЯ» нач i:=1 P:=1 i5 кон P нетда
Program Pr1; Var i: integer; Begin P:=1; i:=1; While 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) b)
нач I:= 1, 5,1 кон i I:= 5, 1,-1 кон i нач Для чисел в прямом порядке h = 1 Для чисел в обратном порядке h= - 1
В результате на экране будет: В результате на экране будет: Program Pr4; Var i: integer; Begin For i:=1 to 5 do Write (i); end. Program Pr5; Var i: integer; Begin For i:=5 downto 1 do Write (i); end.
И так мы рассмотрели следующие вопросы: 1.Алгоритмическая структура цикл; 2.Виды алгоритмических структур: Цикл с предусловием; Цикл с постусловием; Цикл с параметром; 3.Рассмотрели способы записи данных структур; 4.Разобрали примеры решения задач с помощью этих структур.