Публикации
Публикации  »  4GL

Стандартные операторы 4GL

Оператор присваивания в 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.

Категория: 4GL

Комментарии к статье:

Пока комментариев нет, ваш будет первым ;)

Добавить комментарий: