Циклы
Цикл
– это многократные повторяемые действия.
3
основных вида циклов:
-цикл
с параметром
-цикл
с предусловием
-цикл
с постусловием
Цикл с параметром
Оператор
имеет следующий формат:
For i:=A to B do S; (A<=B)
где
i – счетчик цикла, является переменной порядкового типа данных.
А
– начальное значение, В – конечное значение счетчика цикла.
S
– тело цикла (повторяющиеся действия).
Цикл
работает следующим образом: переменной i присваивается начальное значение A,
если A<=B, то выполняется тело цикла S, после чего значение счетчика цикла i
автоматически увеличивается на 1 и опять сравнивается с B. Цикл будет
повторяться до тех пор, пока значение счетчика i не станет больше B.
Если
тело цикла S состоит из нескольких операторов, то они заключаются в операторные
скобки (begin…end). Если в операторе for .. to последнее значение счетчика
цикла меньше первого, то тело цикла не выполняется ни одного раза.
Пример
1: Напечатать 10 раз фразу «Циклический алгоритм»
var i:
integer;
begin;
for i:=1
to 10 do writeln('Циклический алгоритм');
end.
Пример 2: Найти сумму чисел от
1 до 5
var i,s: integer;
begin;
s:=0;
for i:=1 to 5 do begin s:=s+i;
writeln('s=',s);
end;
end.
Существует
еще одна разновидность цикла с параметром:
For i:=A downto B do S; (где A>=B)
Цикл
работает аналогично предыдущему, но после выполнения тела цикла, значение
счетчика цикла автоматически уменьшается на 1. Если A<B, то цикл не
выполнится ни разу.
Цикл с предусловием
Цикл
с параметром следует применять, когда заранее известно, сколько раз необходимо
повторить те или иные действия. Однако во многих случаях циклические действия
необходимо выполнять пока не будет достигнут определенный результат. В этом
случае используются другие разновидности циклов: цикл с предусловием и цикл с
постусловием.
Цикл
с предусловием (цикл «пока») имеет следующий формат:
While условие do S;
В
качестве условия можно использовать любое логическое выражение, которое может
быть либо истиной (true) ли ложью (false). S – тело цикла.
Сначала
проверяется условие, если оно – истина, то выполняется тело цикла S и опять
проверяется условие. Цикл будет повторяться до тех пор, пока условие – истина,
как только условие станет ложным – происходит выход из цикла. Если изначально
условие – ложь, то тело цикла не выполнится ни разу. В отличии от цикла с
параметром в этом виде цикла не предусмотрено автоматическое изменение
переменной цикла, поэтому в теле цикла S должны быть команды, изменяющие
значение переменной цикла. В противном случае при запуске произойдет так
называемое зацикливание программы (т.е. выполнение бесконечного цикла).
Если
тело цикла S состоит из нескольких операторов, то они заключаются в операторные
скобки (begin…end).
Пример:
Вводить числа с клавиатуры, пока не будет введено число «0».
var
i:integer;
begin;
writeln('введите число');
readln(i);
while
i<>0 do begin
writeln('введите число');
readln(i);
end;
end.
Цикл с постусловием.
Формат
оператора:
repeat S
until условие;
где
S – тело цикла, условие – любое логическое выражение.
Принципиальное
отличие оператора repeat...until (повторять до тех пор, пока) от оператора
while...do в том, что проверка условия производится не перед началом выполнения
оператора, а в его конце, когда решается вопрос, повторить ли еще раз действия.
Поэтому тело этого цикла всегда выполняется по крайней мере один раз. Кроме
того цикл будет повторяться, когда условие – ложно, как только условие станет
истинным – происходит выход из цикла.
Пример:
Вводить числа с клавиатуры, пока не будет введено число 0
var
i:integer;
begin;
repeat
writeln('введите число');
readln(i);
until i=0;
end.
Найти сумму чисел от 1 до 256.
var
s,i:integer;
begin
s:=0;
for i:=1
to 256 do s:=s+i;
writeln('s=',s)
end.
Оставьте свой комментарий
Авторизуйтесь, чтобы задавать вопросы.