Оператор присваивания в Progress выглядит так:
I = P.
где I - идентификатор (получатель),
P - выражение (источник).
Типы получателя и источника должны совпадать. Возможно лишь одно традиционное исключение из правила - получателям типа DECIMAL можно присваивать целочисленные значения.
Оператор присваивания можно использовать с опцией NO-ERROR. Эта опция указывает, что любая динамическая ошибка, которая произойдет в операторе присваивания должна быть проигнорирована. После того, как исполнение оператора завершится, можно проанализировать ошибку через системную переменную ERROR-STATUS(см. 1.12).
Оператор ASSIGN также, как и оператор присваивания, может использоваться для задания значения переменных. Его отличие от простого оператора присваивания в том, что в одном операторе можно сразу задать значения нескольких переменных ( это эффективнее, чем несколько отдельных операторов присваивания ). Например:
ASSIGN x = 12.1 y = 14.5 n = 5 m = 7.
Оператор ASSIGN также может использоваться с опцией NO-ERROR.
Условный оператор.
Сокращенная форма условного оператора:
IF B THEN O
где B - логическое выражение,
O - один оператор.
При необходимости выполнить последовательность операторов, нужно эту последовательность заключить в операторные скобки:
DO: ... END.
Полная форма условного оператора:
IF B THEN O1 ELSE O2
где O1 и O2 - операторы.
Оператор выбора.
CASE E :
WHEN K11 [OR WHEN K12] ... THEN O1
WHEN K21 [OR WHEN K22] ... THEN O2
. . .
[OTHERWISE On]
END [CASE].
где E - выражение,
Kij - константы (возможные значения выражения E),
O1, O2, ..., On - операторы.
Оператор цикла.
REPEAT: P END.
где P - последовательность операторов.
Оператор REPEAT является блоком. Выход из блока осуществляется либо по нажатию на клавишу END-ERROR (см. приложение 3), либо по оператору LEAVE:
LEAVE [ M ].
где M - метка блока. Если метка не указана, управление передается следующему за блоком оператору.
Оператор цикла с параметром:
DO I = E1 TO E2 [ BY E3 ]: P END.
где I - идентификатор цикла;
E1, E2, E3 - выражения;
P - последовательность операторов.
Идентификатор I должен быть предварительно описан, а типы выражений E1, E2, E3 - соответствовать друг другу.
Оператор цикла с предусловием:
DO WHILE B: P END.
где I - идентификатор цикла;
B - выражение, выдающее логическое значение;
P - последовательность операторов.
Оператор паузы.
PAUSE [ n ].
где n - целое число.
Оператор паузы без параметра задерживает исполнение программы до нажатия на любую клавишу, а с параметром n - на n секунд.
Операторы выхода.
RETURN
(возврат в вызывающую процедуру или в редактор)
QUIT
(возврат в редактор или в операционную систему)
Пример 1.
DEFINE VARIABLE d AS DATE LABEL "INPUT DATE".
DEFINE VARIABLE s AS CHAR LABEL "ROMA DATE" FORMAT "X(12)".
SET d .
s = STRING( DAY(d) ) + "/".
IF MONTH(d) >= 10 THEN s = s + "X" .
CASE MONTH(D) MODULO 10:
WHEN 1 THEN s = s + "I".
WHEN 2 THEN s = s + "II".
WHEN 3 THEN s = s + "III".
WHEN 4 THEN s = s + "IV".
WHEN 5 THEN s = s + "V".
WHEN 6 THEN s = s + "VI".
WHEN 7 THEN s = s + "VII".
WHEN 8 THEN s = s + "VIII".
WHEN 9 THEN s = s + "IX".
END.
s = s + "/" + STRING(YEAR(d)).
DISPLAY s.
Комментарии к статье:
Добавить комментарий: