Оператор цикла применяется при выполнении расчетов или других действий, повторяющихся определенное количество раз. Оператор имеет вид:
For i:= N1 To N2 Do <оператор>;
либо
For i:= N1 DownTo N2 Do <оператор>;
Здесь i – параметр цикла (переменная целого типа),
N1, N2 - начальное и конечное значения параметра цикла i.
N1, N2 могут быть константами, переменными или выражениями порядкового типа.
Выполнение оператора For в первом варианте (То) происходит по следующей схеме:
1. Параметру цикла присваивается значение N1.
2. Значение параметра цикла сравнивается со значением N2. Если параметр цикла меньше или равен этому значению, то выполняется тело цикла (<оператор>), в противном случае выполнение цикла заканчивается.
3. Значение параметра циклаувеличивается на единицу; происходит возврат к пункту 2.
Слово DownTo буквально можно перевести как «вниз до». В таком случае параметр цикла в пункте 2 изменяется по убыванию, т. е. при каждом повторении цикла параметр изменяет свое значение на предыдущее.
Пример. Требуется вычислить сумму целых чисел от М до N путем прямого суммирования. Здесь Л/и N— целые числа. Задачу можно сформулировать так:
Алгоритм и программа решения этой задачи с использованиемцикла с параметром имеют следующий вид:
ProgramSummering; VarI,M,N,Summa: Integer; Begin Write('M='); ReadLn(M); Write('N='); ReadLn(N); Summa:=0; ForI:=M To N Do Summa:=Summa+I; WriteLn('Сумма равна', Summa) End. |
Операторы цикла с условием
Циклы с условием обычно используются в тех случаях, если количество повторений операторов заранее не известно. В Турбо-Паскале используется два оператора цикла с условием:
Оператор цикла пока, или цикл с предусловием
While <условие> do <оператор>;
Схема выполнения операторов имеет вид:
|
В цикле While <оператор> выполняется если условие верно (True), если условие ложно (False), то цикл заканчивается, т. е. цикл While повторяется пока выполняется условие. Цикл While начинается проверкой условия, поэтому, если начальное условие ложно, то <оператор> не выполняется ни разу. Для включения в тело цикла нескольких операторов применяется составной оператор: Begin <операторы> end.
Пример. В следующем фрагменте программы на Паскале вычисляется сумма конечного числа членов гармонического ряда
Суммирование прекращается, когда очередное слагаемое становится меньше ε или целая переменная i достигает значения MaxInt.
S:=0;
I:=1;
While (1/I>=Eps) And (I<MaxInt) Do
Begin
S:=S+1/I;
I:=I+1
End;