fbpx

FOR statement **

User Rating: 5 / 5

Star ActiveStar ActiveStar ActiveStar ActiveStar Active
 

Оператор FOR используется для циклического выполнения действий определенное число раз.

Общий формат использования оператора FOR

Оператор FOR имеет следующий формат:

for <Index> := <Start> to <Finish> [step <Step>] do <statement>;

Здесь

  • Index — переменная цикла
  • Start — начальное значение переменной Index
  • Finish — финальное значение переменной Index
  • Step — шаг изменения переменной Index (необязательно)
  • Statement — оператор или группа операторов, выполняющихся на каждой итерации цикла

Переменная цикла

Переменная цикла в операторе for должна быть целым числом, т. е. иметь тип Integer, LongInt, Int64 или другой целочисленный тип.

В следующем примере пользователю дважды выводится сообщение "Message 1", "Message 2". Номер сообщения формируется переменной цикла i:

var
i: Integer;
begin
for i := 1 to 2 do
ShowMessage('Message ' + IntToStr(i));
end;

Синтаксис TechEditor допускает упрощенный формат объявления переменных, поэтому тип переменной цикла можно не указывать:

var
i;
begin
for i := 1 to 2 do
ShowMessage('Message ' + IntToStr(i));
end;

Подобная сокращенная запись не рекомендуется из-за несовместимости с другими средами программирования. Чтобы код приложения можно было повторно использовать в других проектах, рекомендуется явно указывать тип переменной.

Начальное и финальное значения переменной цикла

Цикл FOR выполняется N раз. Количество итераций определяется формулой N = Finish - Start + 1. Переменная цикла последовательно получает значения Start, Start + 1, Start + 2 и так далее, до Finish включительно.

Разработчик приложения должен проконтролировать, возрастает или убывает значение переменной цикла. Следующий цикл не будет выполнен, поскольку начальное значение переменной превышает конечное:

var
i: Integer;
begin
for i := 2 to 1 do
ShowMessage('Message ' + IntToStr(i));
end;

Для исправления ситуации, используйте следующую конструкцию оператора:

var
i: Integer;
begin
for i := 2 downto 1 do
ShowMessage('Message ' + IntToStr(i));
end;

При уменьшении значения переменной в операторе for вместо директивы to должна использоваться директива downto.

Цикл с шагом, отличным от 1

Оператор FOR можно использовать с шагом, большим или меньшим 1:

var
i: Integer;
begin
for i := 1 to 10 step 2 do
ShowMessage('Message ' + IntToStr(i));
end;

В этом случае переменная цикла получает значения Start, Start+Step, Start+2*Step, и так далее. Она может не достигнуть величины Finish: в предыдущем примере i = 1, 3, 5, 7, 9.

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

var
i: Integer;
begin
for i := 10 to 1 step -2 do
ShowMessage('Message ' + IntToStr(i));
end;

Примеры использования оператора FOR

Пример 1. Определение центра тяжести сечения

Следующий алгоритм вычисляет координаты центра тяжести сечения, состоящего из набора примитивов Primitives. С помощью оператора FOR, набор последовательно перебирается от начального значения 0 до последнего примитива с номером (Primitives.Count - 1).

Сначала в цикле накапливаются промежуточные значения, т. е. суммируются статические моменты сечения. Финальным действием статические моменты делятся на площадь сечения и результат записывается в исходные переменные X, Y.

begin
X := 0;
Y := 0;
for i := 0 to Primitives.Count - 1 do begin X := X + Primitives[i].GetAreaMomentX; Y := Y + Primitives[i].GetAreaMomentY; end; X := X / Area; Y := Y / Area;
end;

English forum

Simple calculator in TechEditor in 10 minutes!

Ontario Building Code 2012 | Load combination (Free Application & Report Template)

Videoreview version 1.0

New articles

Dystlab™ — Project for Engineers

Dystlab™ is a trademark registered in the State Register of Certificates of Ukraine for Goods and Services Marks 26.02.2018, certificate No. 238304. Owner: entepreneur Artomov V.E., EGRPOU/ITN: 3003314690.

E-mail:
technot needed texteditoranother not needed text@dystlabdummy text.store

Telegram:
https://t.me/techeditor

 

Legal information