Циклические алгоритмы
Сколько циклических алгоритмов можно увидеть вокруг, если внимательно посмотреть на события: чередование времен года
посещения магазинов, школы или секции, получение за контрольные оценок и др.
а) Пока не сдал выпускные экзамены делай начало готовь уроки; посещай школу; конец; б) Пока есть желание, возможность и здоровье делай начало посещай спортивные занятия; конец;
Для реализации повторяющихся действий существуют специальные алгоритмические структуры, получившие название – циклы или команды повторения.
Цикл типа Пока Цикл типа ДО Цикл типа ДЛЯ Виды циклических алгоритмов Цикл с предусловием Цикл с постусловием Цикл с параметром
Виды циклических алгоритмов Цикл с предусловием Цикл с постусловием Цикл с параметром Цикл типа Пока Цикл типа ДО Цикл типа ДЛЯ Условие Серия команд да нет Условие Серия команд да нет Серия команд i,a,b,h
Цикл с предусловием (типа «пока» ) Условие Серия команд да нет Пока (условие) нц Серия команд; кц while условие do begin Серия команд; end; Запись на языке программирования Pascal:
Обратите внимание Цикл заканчивается, когда условие становится не верным (ложным). Если условие с самого начала ложно, то серия команд не выполняется ни разу. 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 1 2 i:=1; 1 1 3 i
да Шаг Операция Р i Проверка условия 1 P:=1; 1 2 i:=1; 1 1 3 P:=P*i; i:=i+1; i>5 1 2 2>5, нет (ложь) 4 P:=P*i i:=i+1 i>5 2 3 3>5, нет (ложь) 5 P:=P*i i:=i+1 i>5 6 4 4>5, нет (ложь) 6 P:=P*i i:=i+1 i>5 24 5 5>5, нет (ложь) 7 P:=P*i i:=i+1 i>5 120 6 6
« ДЛЯ» Шаг Операция Р i Проверка условия 1 P:=1 1 2 i:=1 P:=P*i 1 1 3 i:=2 P:=P*i 2 2 4 i:=3 P:=P*i 6 3 5 i:=4 P:=P*i 24 4 6 i:=5 P:=P*i 120 5
«Пока» «ДО» « ДЛЯ» нач i:=1 P:=1 i
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) 1 2 3 4 5 b) 5 4 3 2 1
Для чисел в прямом порядке h = 1 Для чисел в обратном порядке h= - 1
В результате на экране будет: 1 2 3 4 5 В результате на экране будет: 5 4 3 2 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.
И так мы рассмотрели следующие вопросы: Алгоритмическая структура цикл; Виды алгоритмических структур: Цикл с предусловием; Цикл с постусловием; Цикл с параметром; Рассмотрели способы записи данных структур; Разобрали примеры решения задач с помощью этих структур.