Цикл пока

advertisement
Циклы в языке
Pascal.
Разновидности циклов:
Циклы
Цикл ПОКА
(While)
Цикл ДО
(Repeat)
Цикл с параметром
(For … to …)
Цикл пока
(цикл с предусловием)
While <условие выхода из цикла> do
<оператор>;
Нет
условие
Да
оператор
Цикл пока
Как работает цикл:
Сначала проверяется условие и если оно верно, то
осуществляется переход к телу цикла. После
выполнения операторов тела цикла возвращаемся
для проверки условия. Так будет повторяться до тех
пор пока условие не станет ложным, после чего цикл
прекратит выполняться.
 Почему цикл называют «с предусловием»? Потому
что прежде чем выполнить тело цикла он проверяет
условие…
 Если тело цикла содержит 2 и больше операторов, то
оно заключается в операторные скобки begin … end.

Цикл до (с постусловием)
Repeat
<операторы>
Until <условие выхода из цикла>;
оператор
+
условие
Да
Нет
Цикл до (с постусловием)
Как работает цикл:
Сначала выполняется тело цикла, после чего
осуществляется переход к проверке условия. Если
условие ложно, то возвращаемся к выполнению тела
цикла. Так будет повторяться до тех пор пока
условие не станет верным, после чего цикл
прекратит выполняться.
 Почему цикл называют сначала «с постусловием»?
Потому что в этом цикле условие следует «после»
тела цикла.
 Т.к. тело цикла находится между служебными
словами repeat … until, то операторные скобки не
требуются.

Цикл с параметром

Прямой пересчет
For i:=N1 to N2 do
<операторы;>

Обратный пересчет
For i:=N2 down to N1 do
<операторы>;
N2>=N1
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;
Begin Writeln (‘введите значение первоначального вклада’);
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 часа.
Download