150 likes | 531 Views
Циклы в языке Pascal. Разновидности циклов:. условие. Нет. Да. оператор. Цикл пока (цикл с предусловием). While < условие выхода из цикла > do < оператор >;. Цикл пока. Как работает цикл:
E N D
условие Нет Да оператор Цикл пока (цикл с предусловием) While <условие выхода из цикла> do <оператор>;
Цикл пока • Как работает цикл: Сначала проверяется условие и если оно верно, то осуществляется переход к телу цикла. После выполнения операторов тела цикла возвращаемся для проверки условия. Так будет повторяться до тех пор пока условие не станет ложным, после чего цикл прекратит выполняться. • Почему цикл называют «с предусловием»? Потому что прежде чем выполнить тело цикла он проверяет условие… • Если тело цикла содержит 2 и больше операторов, то оно заключается в операторные скобки begin … end.
оператор условие + Да Нет Цикл до (с постусловием) Repeat <операторы> Until <условие выхода из цикла>;
Цикл до (с постусловием) • Как работает цикл: Сначала выполняется тело цикла, после чего осуществляется переход к проверке условия. Если условие ложно, то возвращаемся к выполнению тела цикла. Так будет повторяться до тех пор пока условие не станет верным, после чего цикл прекратит выполняться. • Почему цикл называют сначала «с постусловием»? Потому что в этом цикле условие следует «после» тела цикла. • Т.к. тело цикла находится между служебными словами repeat … until, то операторные скобки не требуются.
Прямой пересчет For i:=N1 to N2 do <операторы;> N2>=N1 Обратный пересчет For i:=N2 downto N1 do <операторы>; N2>=N1 Цикл с параметром
Цикл с параметром • Как работает цикл: Сначала переменной i присваивается первоначальное значение N1, затем значение i сравнивается с конечным значением N2 и если i <= N2, то осуществляется переход к телу цикла. После выполнения тела цикла значение i увеличивается ровно на 1 и опять повторяется сравнение с N2. Так продолжается до тех пор пока значение i не станет больше значения N2. Цикл обратного пересчета работает аналогично с разницей в том, что значение i каждый раз уменьшается на 1 и i>=N1. Если значение i станет меньше значения N1, то цикл прекратит работу. • Если тело цикла содержит 2 и больше операторов, то оно заключается в операторные скобки begin … end.
Задача Гражданин 1 марта открыл счёт в банке,вложив 1000 рублей. Через каждый месяц размер вклада увеличивается на 2% от имеющейся суммы. Определить: • Сумму вклада через один, два, …, двенадцать месяцев.
Описательная часть программы: Program vklad; Var i: integer; a: real;
Математическая модель решения: • Первоначальный вклад а0=1000 • 1 месяц: а1=а0+а0*0,02 • 2 месяц: а2=а1+а1*0,02 • ---------------------------- • 10 месяц: а10=а9+а9*0,02 • Общий случай: an=an-1+an-1*0,02
Алгоритм решения: начало Ввести значение первоначального вклада счётчик - Выполнять тело цикла 12 раз Тело цикла + а=а+а*0,02 Вывести результаты на экран конец
Программа: Цикл с параметром: Program vklad; Var i: integer; a: real; BeginWriteln (‘введите значение первоначального вклада’); Readln (а); For i:=1 to 12 do begin a:= a+a*0,02; writeln (a); end; end.
Цикл до: Program vklad; Var i: integer; a: real; Begin Writeln (‘введите значение первоначального вклада’); Readln (а); i:=1; repeat a:= a+a*0,02; writeln (a); i:=i+1; until i>12; end. Цикл пока: Program vklad; Var i: integer; a: real; Begin Writeln (‘введите значение первоначального вклада’); Readln (а); i:=1; while i<=12 do begin a:= a+a*0,02; writeln (a); i:=i+1; end; end. Программа:
Домашнее задание: Решите задачу используя цикл на ваше усмотрение. • Одноклеточная амёба каждые 3 часа делится на 2 клетки. Определить, сколько будет клеток через 3, 6, 9, …, 24 часа.