Перейти к основному содержимому

Циклы

Формат:

WHILE <Логическая переменная> DO; BEGIN;

<Выражение1>;

.

.

<ВыражениеN>;

END;

<Логическая переменная> - см. «ЛОГИЧЕСКАЯ ПЕРЕМЕННАЯ»;

<Выражение> - оператор или конструкция.

Пример:

ЦИКЛ=5<10;

ПЕР=1;

WHILE ЦИКЛ DO;

BEGIN;

ЦИКЛ=5>ПЕР;

ПЕР=ПЕР+1;

END;

Пример вызова

{ ОБХОД МЕСЯЦА ПО ДНЯМ }

ЗАРПЛАТА = 0;

{ Подготовка цикла: }

;;ТЕКУЩИЙ_ДЕНЬ = ИЗМЕНЕНИЕДАТЫ(ДАТА_НАЧ,1,0); // С версии 12.2: ТЕКУЩИЙ_ДЕНЬ = ДАТА(ДАТА_НАЧ);

;;ПЕРИОД_ОКОНЧЕН = СРАВНИТЬДАТЫ(ТЕКУЩИЙ_ДЕНЬ,ДАТА_ОКОНЧ);

;;ЦИКЛ_РАБОТАЕТ = ПЕРИОД_ОКОНЧЕН <= 0;

while ЦИКЛ_РАБОТАЕТ do;

begin;

{ Бизнес-логика цикла: }

;;СУММА = 0;

;;ЧАСОВ = ПЛАНЧАС(ДОКТ,ТЕКУЩИЙ_ДЕНЬ,ТЕКУЩИЙ_ДЕНЬ,'Б');

;;СМЕНА_6_ЧАСОВ = ЧАСОВ = 6;

if СМЕНА_6_ЧАСОВ then;

begin;

;;СУММА = 1000;

end;

;;ЗАРПЛАТА = ЗАРПЛАТА + СУММА;

;;ПЕЧАТЬ(ТЕКУЩИЙ_ДЕНЬ, '~', ЧАСОВ, 'час.', '', СУММА, '~руб.');

{ Коррекция цикла: }

;;ТЕКУЩИЙ_ДЕНЬ = ИЗМЕНЕНИЕДАТЫ(ТЕКУЩИЙ_ДЕНЬ,1,1);

;;ПЕРИОД_ОКОНЧЕН = СРАВНИТЬДАТЫ(ТЕКУЩИЙ_ДЕНЬ,ДАТА_ОКОНЧ);

;;ЦИКЛ_РАБОТАЕТ = ПЕРИОД_ОКОНЧЕН <= 0;

end;

;;ПЕЧАТЬ('ИТОГО:', '~', ЗАРПЛАТА, '~руб.');

Была ли статья полезна?