Циклические алгоритмы Виды циклов и циклические команды на Паскале
Цикл - это многократное повторение последовательности действий Виды циклов С заданным числом повторений С условием Условие выполнения цикла Условие выхода из цикла Повторяющаяся часть алгоритма называется ТЕЛОМ ЦИКЛА
Виды циклов (содержание) Цикл с предусловием Цикл с постусловием Цикл с параметрами Решение сложных задач Практика
Цикл с предусловием Если число повторений заранее неизвестно, а задано лишь условием, и действие, которое необходимо выполнить только после проверки условия используют цикл в предусловием. В качестве условия используется логическое выражение, тело цикла – простой или составной оператор. Перед каждым выполнением тела цикла происходит проверка условия, если результат «истина», то тело цикла выполняется еще раз, если «ложь», то происходит выход из цикла. На блок - схемеВ Pascal begin end; Условие Тело цикла Нет Практика Начало цикла Конец цикла ДА While do
Цикл с постусловием Если число повторений заранее неизвестно, а задано лишь условием, и действие, которое необходимо выполнить до проверки условия используют цикл с постусловием. В качестве условия используется логическое выражение, тело цикла – простой или составной оператор. После каждого выполнением тела цикла происходит проверка условия, если результат «ложь», то тело цикла выполняется еще раз, если «истина», то происходит выход из цикла. На блок - схемеВ Pascal Repeat Условие Тело цикла Да Нет Практика Until ;
Цикл с параметром В случаях, когда число повторений заранее известно применяется цикл в параметром. Переменная, задающая число повторений, называется параметром цикла, либо управляющей переменной. После каждого выполнения тела цикла управляющая переменная увеличивается либо уменьшается, цикл выполняется до тех пора пока она не превысит либо станет меньше ограничения. На блок - схемеВ Pascal Х – управляющая переменная (параметр цикла) А – начальное значение Х, В – конечное Х С – шаг изменения Х В качестве шага можно использовать только: «to» = 1; «downto» = -1 X:=A,В,C Тело цикла Практика For X:=A to B do Begin End;
Пример задачи с использованием цикла с предусловием Возвести число 3 в заданную степень ЗАДАЧА: Словесный алгоритм: Умножать число Х изначально равное 1 заданное число раз (Н) на 3. начало Н BHBH X:=1 X:=X*3 конец Х Ввод заданной степени Начальные значения «В» счетчик степени В=В+1 Умножение на 3 Увеличение счетчика Вывод получившегося значения Programm Stepen; Var H,B,X:integer; Begin Writeln(Степень?); Readln(H); X:=1; B:=1; While B
Пример задачи с использованием цикла с постусловием Возвести число 3 в заданную степень ЗАДАЧА: Словесный алгоритм: Умножать число Х изначально равное 1 заданное число раз (Н) на 3. начало Н B>=H X:=1 X:=X*3 конец Х Ввод заданной степени Начальные значения «В» счетчик степени В=В+1 Умножение на 3 Увеличение счетчика Вывод получившегося значения Programm Stepen; Var H,B,X:integer; Begin Writeln(Степень?); Readln(H); X:=1; B:=0; Repeat X:=X*3; B:=B+1; Until B>=H; Writeln (Результат,X); End. Нет Да Теория Pascal Блок-Схема Пояснения B:=0
Пример задачи с использованием цикла с параметром Возвести число 3 в заданную степень ЗАДАЧА: Словесный алгоритм: Умножать число Х изначально равное 1 заданное число раз (Н) на 3. начало Н X:=1 X:=X*3 конец Х Ввод заданной степени Начальное значение Х=1 Параметры от 1 до Н Умножение на 3 Вывод получившегося значения Programm Stepen; Var H,B,X:integer; Begin Writeln(Степень?); Readln(H); X:=1; For B:=1 to H do Begin X:=X*3; End; Writeln (Результат,X); End. B:=1,H,1 Теория Pascal Блок-Схема Пояснения
Выбор цикла зависит от особенностей условия задачи. Только практика подскажет Вам оптимальное решение.
Задача: Начав тренировки, спортсмен в первый день пробежал 10 км. Каждый день он увеличивал дневную норму на 10% нормы предыдущего дня. Какой суммарный путь пробежит спортсмен за 7 дней. Входные переменные: Выходные переменные: S – общий путь d – количество дней Sd – расстояние за текущий день
Блок - схема к решению начало конец S:=10 d:=1 d:=d+1 Sd:=Sd*1.1 D=7 s да нет S:=S+Sd Sd:=10
Программа на Паскале Program beg; Var S,Sd: real; d:byte; Begin S:=10; Sd:=10; For d:=2 to 7 do begin Sd:=1.1*Sd; S:=S+Sd; end; Writeln(S=,S); End. Program beg; Var S,Sd: real; d:byte; Begin S:=10; Sd:=10; While d
Конец Вопросы для контроля: 1.Каким оператором в Pascal задается цикл с предусловием 2.Как в цикле в параметром указывать шаг «1» и «-1» 3.По какой ветке происходит выход из цикла с постусловием 4.Есть ли в цикле с параметром условия 5.Что может быть телом цикла 6.Когда используется цикл с параметрами