Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
metod_inf_1.doc
Скачиваний:
0
Добавлен:
02.09.2019
Размер:
124.93 Кб
Скачать

2.4.3. Оператор for

Оператор цикла FOR, известный как оператор цикла с параметром, имеет вид

for i=a to b do s;

При выполнении этого оператора сначала вычисляется некоторое начальное значение А, которое присваивается переменной I, называе­мой параметром цикла. Затем вычисляется конечное значение В и про­веряется, имеет ли место равенство I=В. Если равенства нет, выполня­ется оператор S, который может быть составным, и переменная увели­чивается на единицу. После этого проверка (не равен ли параметр конечному значению), выполнение оператора S и увеличение перемен­ной на единицу выполняются циклически до тех пор, пока не наступа­ет равенство I. Параметр цикла I, а также начальное и конечное зна­чения (А и В) могут принадлежать любому порядковому типу (например, Integer или Char). (Но при этом все они должны быть одного типа.) Если начальное значение превышает или равно конечному значению с само­го начала, оператор S не выполнится ни разу.

Использованные здесь зарезервированные слова FOR, TO и DO име­ют смысл от, до и выполнять соответственно.

Оператор цикла FOR имеет такие особенности:

• в теле цикла запрещается явно изменять значение параметра цикла (с помощью оператора присваивания, например);

• по завершении работы оператора цикла FOR значение параметра (I) считается неопределенным.

Возможна и другая форма оператора цикла с параметром:

for i=a downto b do s;

Здесь, чтобы выполнялся оператор S, начальное значение А должно превышать конечное значение В. Кроме того, в этом случае параметр I с каждым циклом уменьшается на единицу, пока не становится равным конечному значению В.

Оператор цикла с параметром следует использовать тогда, когда за­ранее точно известно, сколько раз должно быть выполнено тело цикла.

Вот примеры оператора цикла с параметром:

for i:=l to 5 do x:=sqr(x);

for i:=z downto a do write (i);

В первом примере значение переменной X возводится в квадрат, затем полученная величина присваивается переменной X - и так пять раз.

Во втором примере оператор цикла с параметром использован для вывода букв латинского алфавита в обратном порядке (с z по а). Дело в том, что тип Char является порядковым, причем буквы начала алфави­та (как значения типа Char) считаются меньше букв, взятых в конце ал­фавита. Не будет, например, ошибочным неравенство А<В.

Для того чтобы понять разницу между операторами цикла WHILE и FOR, рассмотрим соответствующие фрагменты программ, выводящие на экран пустые строки.

Цикл WHILE Цикл FOR

line:=l for line=l to n do

while line<n do writeln

begin

writeln;

line:=line+1

end;

Если переменная Line объявлена (в разделе описания переменных) как принадлежащая типу Integer, оператор FOR выведет на экран N пустых строк. Реализация задачи с помощью оператора FOR выглядит проще, поскольку здесь нет нужды в операторах присваивания line:=l и line:= line+1.

2.5. Вложенные циклы

В программах на Turbo Pascal возможно использование вложенных циклов. Это подразумевает, что существует внешний цикл и один или несколько внутренних циклов. Каждое повторение внешнего цикла оз­начает завершение всех внутренних циклов; при этом всем выражениям, которые управляют внутренними циклами, вновь присваиваются начальные значения.

Приведем пример программы обнуления матрицы:

For I:=1 to 10 do

For J:=1 to 5 do

A[I,J] := 0; {обнуление матрицы}

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]