Слайд 2Типы циклов
цикл с предусловием
цикл с постусловием
цикл с параметром
Слайд 3Основные понятия
Тело цикла –
повторяющиеся действия
Итерация –
один проход цикла
Начальные установки –
определение значений переменных, которые используются в циклах с предусловием и с постусловием
Слайд 4Цикл с предусловием
while <условие> do <тело цикла>;
Условие – простое или составное логическое
Слайд 5Примеры
a : = 3; while a < 4 do a: = sqr(a);
a
: = 10; while true do a : = a*10;
a : = 10; while false do a : = a*10;
Слайд 6Задача
Преобразовать значение угла в градусах к стандартному диапазону ±1800 путем исключения полных
оборотов окружности (±3600).
Слайд 7Решение
var a : integer;
begin
readln(a);
while abs(a) > 180 do
if a >
0 then dec(a,360)
else inc(a,360);
writeln(a);
end.
Слайд 8Для n>=0, не применяя формулы, вычислить сумму чисел от 1 до n
i:=0;
S:=0;
Readln(n);
While
xBegin
i:=i+1;
s:=s+i;
End;
do
Слайд 9C клавиатуры вводятся натуральные числа. Последовательность этих чисел заканчивается нулем. Найти их
сумму.
Readln(a);
S:=0;
While
a<>0
do
Begin
S:=s+a;
End;
Слайд 10Цикл с постусловием
repeat
<тело цикла>
Until <условие>;
Формат:
Слайд 11Примеры
x : = 4;
repeat writeln (x);
until true;
x : = 4;
repeat writeln (x);
until false;
Слайд 12Задача
Найти методом подбора целочисленное решение Диофантова уравнения 5х-3у=1.
Слайд 13Решение
var x, y : integer;
begin
x : = 1; y : = 1;
repeat
if
5*x – 3*y >1 then inc(y)
else inc(x);
until 5*x – 3*y =1;
writeln (x:5, y:5);
end.
Слайд 14
Цикл с параметром
Этот оператор применяется, если требуется выполнить тело цикла заранее заданное
количество раз.
Параметр - переменная порядкового типа - на каждой итерации увеличивается или уменьшается на одно значение.
Слайд 15Формат оператора
for <параметр> : = <выражение 1>
to <выражение 2>
do
<тело цикла>;
S:=0;
for i:=1 to 20 do
s:=s+i;
Слайд 18Формат оператора
for <параметр> : = <выражение 1> downto <выражение 2> do
<тело цикла>;
S:=0;
for i:=20 downto 1 do
s:=s+i;
Слайд 20Задача
Найти нечетные и кратные 3 числа в диапазоне от 30 до 60.
Распечатать их в порядке убывания.
Слайд 21Решение
var i : byte;
begin
for i := 60 downto 30 do
if ( i
mod 3 =0) and ( odd i )
then writeln ( i );
end.
Слайд 22
Замечания
Если тело цикла содержит несколько действий, то эти действия заключаются в операторные
скобки begin … end.
В теле цикла запрещается явное преобразование счетчика.
После нормального завершения цикла значение счетчика не определено.
Слайд 23
Замечания
Для аварийного выхода из циклов или внеочередного перехода к следующей итерации существуют
две процедуры модуля SYSTEM:
BREAK - прекращает выполнение тела цикла и переходит к оператору, следующему за циклом;
CONTINUE – передает управление на условие продолжения или завершения тела цикла, так что начинается следующая итерация.