Оператор цикла с параметром
Оператор цикла применяется при выполнении расчетов или других действий, повторяющихся определенное количество раз. Оператор имеет вид:
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;