Операторы цикла

### Конспект урока | Вопросы самопроверки | Задания на дом | Практикум | Тест

### В языке Турбо Паскаль реализованы команды повторения в виде операторов цикла.
1. Циклы с предусловием:
Цикл с предусловием (цикл ПОКА) имеет вид:
WHILE логическое выражение DO
Оператор;
Цикл может не выполняться ни разу, если значение логического выражения сразу же оказывается FALSE. В качестве оператора может быть составной оператор. Цикл выполняется до тех пор, пока значение логического выражения TRUE. Например:
S:=0;
Read(a);
While a<>0 do
Begin
If a>0 then s:=s+a;
Read(a);
End.
2. Циклы с постусловием:
REPEAT
Выражения; операторы;
UNTIL выражение;
Один раз операторы или выражения внутри цикла будут выполняться в любом случае. Цикл выполняется до тех пор, пока значение логического выражения FALSE. При приобретении логическим выражением значения TRUE выполнение цикла завершается.
Проанализировать пример:
S:=0;
Repeat
Readln(v1);
Readln(k1);
v2:=v2+v1*k;
until v2>=v1;
Первый и второй тип цикла не позволяет явно задать количество повторений.
3. Циклы с параметром.
Цикл с параметром применяется в тех случаях, когда количество повторений выполнения команд заранее известно. Имеются две формы записи этого вида цикла:
(1) FOR параметр:=нач.значение TO кон.значение DO
Оператор;
Например:
(1) FOR k:=2 TO 10 DO p:=p*k;
В этих операторах нет шага изменения параметра. Он в данной форме записи постоянен и равен 1.
(2) FOR параметр:=нач.значение DOWNTO кон.значение DO
Оператор;
Например:
For I:=640 downto 1 do x:=x+1;
В данном случае шаг цикла равен – 1.
В качестве оператора может выступать составной оператор.
Задача: Найти сумму всех чисел на промежутке от -50 до 200, которые кратны, делятся на 5,8, и остаток от деления на 10 равен 5 или нулю.
program sum(input,output);
uses crt;
var
i,s:integer;
begin
clrscr;
s:=0;
for i:=-50 to 200 do
{проверка условий и суммирование}
if (i mod 5=0) and (i mod 8=0) and ((i mod 10=5) or (i mod 10=0)) then s:=s+1;
{вывод на печать суммы искомых чисел}
writeln ('сумма чисел удовлетворяющих условию= ',s);
repeat until keypressed;
end.

### 1.Для чего используется алгоритмическая конструкция "Цикл"?
2.Напишите формат оператора цикла с предусловием.
3.Напишите формат оператора цикла с постусловием.
4.Напишите формат оператора цикла с параметром.

### 1. Каковы будут значения переменных и сколько раз исполнится цикл?
For x:=1 to 15 do
If x mod 2=1 then s:=s+1;
2. Сколько раз будут выполнены операторы внутри цикла в следующем фрагменте?
X:=2;y:=10;
While y-x>1 do
Begin
X:=x+1;y:=y-1;
End;
Sum:=x+y;
3. Что будет выведено на экране после выполнения следующих операторов?
P:=1;I:=1;
Repeat p:=p*2;
I:=i-1;
Until i<=1;