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

Цикл for…

Цикл for... следует использовать когда число повторений известно заранее. Для организации такого цикла достаточно знать, сколько итераций должно быть сделано. Для этого задают начальное и конечное значения счетчика цикла.

Если при переходе от одной итерации к другой счетчик должен увеличиваться, в составе цикла используется ключевое слово to. В противном случае используется ключевое слово downto.

Цикл for с увеличением счетчика синтаксически определен как

for initial_value to end_value do begin statements; end;

Начальное значение счетчика цикла устанавливает выражение initial_value. Повтор выполнений блока statements (т.е. тела цикла) заканчивается сразу как только счетчик цикла превысит end_value. По окончании каждой итерации переменная целого типа в выражении initial_value увеличивается на единицу.

Ключевые слова begin и end в цикле с единственным оператором не обязательны.

Цикл for с уменьшением счетчика в общем случае имеет следующий вид

for initial_value downto end_value do begin statements; end;

Начальное состояние счетчика цикла устанавливает выражение initial_value. Повтор выполнений блока statements (т.е. тела цикла) заканчивается когда счетчик цикла станет меньше чем end_value. По окончании каждой итерации переменная целого типа в выражении initial_value уменьшается на единицу.

Ключевые слова begin и end в цикле с единственным оператором не обязательны.

Для пояснения синтаксических формул обратимся к примерам. Сначала рассмотрим цикл с увеличением счетчика цикла:

var

I : Integer;

begin

for I := 0 to 4 do

begin

Memo1.Lines.Add(’Это итерация ’ + IntToStr(I));

end;

end;

В этом фрагменте оператор

Memo1.Lines.Add(’Это итерация ’ + IntToStr(I));

выполняется 5 раз. Назначение оператора – добавить строку к тексту, отображаемому компонентном TMemo на форме приложения. В результате выполнения данного фрагмента программы в компонент Memo1 будут добавлены строки (Lines)

Это итерация 0

Это итерация 1

Это итерация 2

Это итерация 3

Это итерация 4

Выражение initial_value (в данном случае это I:=0) задает начальное значение счетчика цикла. Счетчиком цикла является переменная целого типа I. Выраженим end_value является константа 4. Таким образом, цикл закончится когда счетчик цикла, т.е. переменная I, будет равна 4.

Теперь рассмотрим цикл с уменьшением счетчика:

var

I : Integer;

begin

for I := 4 downto 0 do

begin

Memo1.Lines.Add(’Это итерация ’ + IntToStr(I));

end;

end;

В результате выполнения этого фрагмента компонент Memo1 будет содержать строки

Это итерация 4

Это итерация 3

Это итерация 2

Это итерация 1

Это итерация 0

Упражнение.

1. Создайте новую программу (File | New Application).

2. Поместите на форму командную кнопку.

3. На странице Standard найдите компонент Memo и перенесите его на форму.

4. Придайте компоненту Memo1 необходимые размеры. В инспекторе объектов придайте свойству ScrollBars компонента Memo1 значение ssVertical.

5. Дважды щелкните на кнопке Button1 для создания обработчика события OnClick. Придайте обработчику события следующий вид:

procedure TForm1.Button1Click(Sender: TObject);

var

I : Integer;

begin

Memo1.Lines.Clear;

for I := 0 to 5 do

Memo1.Lines.Add(’Это итерация ’ + IntToStr(I));

Memo1.Lines.Add(’ ’);

for I := 5 downto 0 do

Memo1.Lines.Add(’Это итерация ’ + IntToStr(I));

Memo1.Lines.Add(’––-Выполнено––-’);

end;

Откомпилируйте программу (F9).

Нажмите кнопку Button1.

Ожидаемый результат показан на рисунке.

В отличие от других языков программирования, Pascal допускает изменение счетчика цикла только на 1. Чтобы организовать цикл, например от 0 до 100 с шагом 10, можно поступить следующим образом:

var

I : Integer;

X : Integer;

begin

X := 0;

Memo1.Lines.Clear;

for I := 0 to 9 do

begin

Memo1.Lines.Add(’Счетчик = ’+ IntToStr(X));

Inc(X, 10);

end;

end;

Этот код выводит в Memo1:

Счетчик = 0

Счетчик = 10

Счетчик = 20

Счетчик = 30

Счетчик = 40

Счетчик = 50

Счетчик = 60

Счетчик = 70

Счетчик = 80

Счетчик = 90

ПРИМЕЧАНИЕ. Обратите внимание на то, что для увеличения значения переменной X используется процедура Inc. Эта функция увеличивает значение переменной (X в этом фрагменте) на заданную величину (10). Если приращение не указано, значение переменной увеличивается на 1. Например:

Inc(X); { X увеличивается на 1. То же, что и X := X + 1 }

У функции Inc есть «двойник» с именем Dec. Ниже дан пример с функцией Dec:

Dec(X); { X уменьшается на 1 }

Dec(X, 10); { X уменьшается на 10 }

Используйте функции Inc и Dec вместо операторов вроде X := X + 1;