Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Информатика_СА_СМ_ДМ.doc
Скачиваний:
36
Добавлен:
02.05.2019
Размер:
3.46 Mб
Скачать

Цикл с параметром

Инструкция for используется в том случае, если некоторую последовательность действий (инструкций программы) надо выполнить несколько раз, причем число повторений заранее известно. В общем виде инструкция for записывается следующим образом:

for <счетчик> := <нач_знач> to <кон_знач> do

begin

// здесь операторы, которые надо выполнить несколько раз

end

где:

  • счетчик — переменная-счетчик числа повторений инструкций цикла;

  • нач_знач-- выражение, определяющее начальное значение счетчика циклов;

  • кон_знач — выражение, определяющее конечное значение счетчика циклов.

Переменная счетчик, выражения нач_знач и кон_знач должны быть целого типа. Обычно в качестве счетчика используется переменная типа byte. Количество повторений инструкций цикла можно вычислить по формуле:

(кон_знач — нач_знач + 1).

Примеры:

for i:=l to 10 do

begin

label1.caption:=label1.caption + '*';

end;

for i: =1 to n do s := s+i;

Если между begin и end находится только один оператор, то слова begin и end можно не писать.

Алгоритм, соответствующий инструкции for, представлен на рис. 4.1. Обратите внимание, что если начальное значение счетчика больше конечного значения, то последовательность операторов между begin и end не будет выполнена ни разу.

Кроме того, после каждого выполнения инструкций тела цикла счетчик циклов увеличивается автоматически.

Рис. 4.1.. Алгоритм инструкции for

Переменную-счетчик можно использовать внутри цикла (но ни в коем случае не изменять). Например:

tabl: = '' ;

for i:=1 to 5 do

tabl:=tabl+IntToStr(i)+' '+IntToStr(i*i)+chr(13);

Переменная tabl будет содержать изображения таблицы квадратов чисел.

Если в инструкции for вместо слова to записать downto, то после очередного выполнения инструкций тела цикла значение счетчика будет не увеличиваться, а уменьшаться.

Инициализация массива

Если массив не является локальным, т. е. объявлен не в процедуре обработки события, а в разделе переменных модуля, то одновременно с объявлением массива можно выполнить его инициализацию, т. е. присвоить начальные значения элементам массива. Инструкция объявления массива с одновременной его инициализацией в общем виде выглядит так:

Имя:array [нижний_индекс..верхний_индекс] of тип = (список);

где список — разделенные запятыми значения элементов массива.

Например:

a: array[10] of integer = (0,0,0,0,0,0,0,0,0,0);

Обратите внимание, что количество элементов списка инициализации должно соответствовать размерности массива. Если это будет не так, то компилятор выведет cообщение об ошибке:

Number of elements differs from declaration

(количество элементов не соответствует указанному в объявлении).

При попытке инициализировать локальный массив компилятор выводит сообщение об ошибке:

Cannot initialize local variables

(локальная переменная не может быть инициализирована).

Локальный массив можно инициализировать только во время работы программы, например, так:

for i := 1 to 10 do

a[i]:= 0;