Первый элемент арифметического выражения

Второй элемент ариф.мегическог© выражения

Иденти^ ика- тор или литерал

+ —

* / **

Унарный плюс или минус

(

)

Идентификатор или литерал


р



р

*/ »»

р

р

р

Унарный плюс или минус

р

р

(

р

р

р

)

__

р

р

Примечание. Буква Р представляет допустимую пару элементов, знак «—» — недопустимую;



  1. арифметическое выражение может начинаться только с идентификатора, литерала или символов (, +> — и может за­канчиваться только ), идентификатором или литералом. Между открывающими и закрывающими скобками в арифметическом выражении должно быть взаимно однозначное соответствие, так что каждая открывающая скобка должна быть слева от соот­ветствующей ей закрывающей скобки. Если первая операция в арифметическом выражении унарная и это арифметическое вы­ражение непосредственно следует за идентификатором или дру­гим арифметическим выражением, ей должна непосредственно предшествовать левая скобка;

  2. вычисление экспоненты в арифметическом выражении производится по следующим правилам:

  1. если значение выражения, которое должно быть возведе­но в степень, равно нулю, степень должна иметь значение боль­шее нуля. В противном случае возникает условие переполнения (п. 6.4.2 настоящей части);

  2. если в результате вычисления может получиться и поло­жительное, и отрицательное число, в качестве результата возвра­щается положительное;

  3. если не существует действительного числа, которое может быть результатом вычисления, возникает условие переполнения;

  1. арифметические выражения позволяют пользователю комбинировать арифметические операции без ограничений на совокупность операндов и (или) получаемых данных. В каждой реализации указываются способы, которые используются в об­работке арифметических выражений.Условные выражения

Условные выражения задают условия, которые проверяются в объектной программе для выбора альтернативных путей управ­ления в зависимости от значения истинности условия. Условное выражение имеет значение истинности «истина» или «ложь». Ус­ловные выражения задаются в операторах I EVALUATE (ОЦЕ-| |НИТЬ), /IF (ЕСЛИ), PERFORM (ВЫПОЛНИТЬ) / и SEARCH| [ (ИСКАТЬ) . Есть две категории условий, связанных с условны­ми выражениями: простые условия | и сложные условия | . Каж­дое из них может заключаться в любое число парных скобок, в ре­зультате чего категория условия не меняется.

  1. П

    класса, . Прос­

    р о с т ы е условия

П

I имени-условия,

ростыми условиями являются условия отношения, состояния-переключателя | и знака тое условие может иметь значение истинности «истина» или «ложь». Заключение в скобки простых условий не меняет их зна­чения истинности.
  1. Условия отношения

Условие отношения вызывает сравнение двух операндов, каж­дый из которых может быть либо данным, представленным иден- тификатором, либо литералом, | либо значением арифметического' [выражения, I либо именем индекса. Условие отношения имеет значение истинности «истина», если между операндами имеет мес­то указанное отношение. Допускается сравнение двух числовых операндов независимо от формата, определяемого индивидуальны­ми фразами об использовании. Однако для всех других случаев сравнения описания операндов должны задавать одинаковое ис­пользование. Если хоть один из операндов является групповым данным, сравнение выполняется по правилам сравнения нечисло­вых операндов.

Общий формат для условия отношения следующий:

I идентификатор-2

I литерал-2

І арифметическое- выражение-2

I имя-индекса-2

идентификатор-1 литерал-1

арифметическое- выражение-1

имя-индекса-1

IS [NOT] GREATER THAN

IS [NOT]>

IS [NOT] LESS THAN

IS [NOT] <

IS [NOT] EQUAL TO

IS [NOT] =

IS GREATER THAN OR EQUAL TO

IS > =

IS LESS THAN OR EQUAL TO

IS < =

66S


идентификатор-1 литерал-1

арифметическое- выражение-1

имя-индекса-1

[НЕ] БОЛЬШЕ

[НЕ] >

[НЕ] МЕНЬШЕ

[НЕ] <

[НЕ] РАВНО

[НЕ] =

БОЛЬШЕ ИЛИ РАВНО

МЕНЬШЕ ИЛИ РАВНО

I идентификатор-2 I литерал-2 ] арифметическое-

I выражение-2

( имя-индекса-2


ГОСТ 22558—89











П

, арифметиче-!

ервый операнд (идентификатор-1, литерал-1

Iское-выражение-1 или имя-индекса-1) называется субъектом ус­ловия; второй операнд (идентификатор-2, литерал-2 арифме- тическое-выражение-21 или имя-индекса-2) называется объектом условия. Условие отношения должно содержать по крайней мере один идентификатор.

З

слово или литера отношения представляют один знак операции от­ношения, определяющий тип сравнения для определения значения истинности. Следующие знаки операций отношения эквивалентны: IS NOT GREATER THAN (HE БОЛЬШЕ) эквивалентно IS LESS THAN OR EQUAL TO (МЕНЬШЕ ИЛИ РАВНО); IS NOT LESS THAN (HE МЕНЬШЕ) эквивалентно IS GREATER THAN OR EQUAL TO (БОЛЬШЕ ИЛИ РАВНО). Смысл знаков операций

нак операции отношения задает тип сравнения, которое долж­но быть произведено в условии отношения. Знаки операций отно­шения и зарезервированные слова должны обрамляться пробела­ми. NOT (НЕ) (если оно используется) и последующее ключевое

Значение

Знак операции отношения

Больше или не больше

IS [NOT] GREATER THAN

IS [NOT] >

[HE] БОЛЬШЕ

[HE] >

Меньше или не меньше

IS [NOT] LESS THAN

IS [NOT] <

[HE] МЕНЬШЕ [HE] <

Равно или не равно

IS [NOT] EQUAL TO

IS [NOT] =

[HE] РАВНО [HE] =

Больше или равно

IS GREATER THAN OR

EQUAL TO

IS > =

БОЛЬШЕ ИЛИ РАВНО

Меньше или равно

IS LESS THAN OR EQUAL

TO

IS < =

МЕНЬШЕ ИЛИ РАВНО

отношения показан ниже.



  1. Ср а в н е н и е числовых операндов

Для операндов числовой категории производится сравнение ал­гебраических значений операндов. Длина литерала или операндов 300арифметического выражения в терминах числа цифр не существен­на. Нуль рассматривается как единственное значение, не завися­щее от знака.

Сравнение числовых операндов допускается независимо от спо­соба описания их использования. Числовые операнды, не имеющие знака, рассматриваются при сравнении как положительные.

  1. Сравнение нечисловых операндов

Для нечисловых операндов или для случая, когда один операнд числовой, а второй — нечисловой, производится сравнение в соот­ветствии с указанной основной последовательностью литер. В пос­леднем случае числовой операнд должен быть целым литералом или данным, описанным как целое и:

  1. если нечисловой операнд является элементарным данным или нечисловым литералом, числовой операнд рассматривается так, как будто выполнено его перемещение в элементарное бук­венно-цифровое данное того же размера, что и числовое данное (в терминах литер стандартного формата данных); значение этого буквенно-цифрового данного затем сравнивается с нечисловым опе­рандом (см. п. 5.9.4, правило (8), п. 6.19 настоящей части);

  2. если нечисловой операнд является групповым данным, чис­ловой операнд рассматривается так, как будто выполнено его пе­ремещение в групповое данное того же размера, что и числовое данное (в терминах литер стандартного формата данных), и зна­чение этого группового данного затем сравнивается с нечисловым операндом (см. п. 5.9.4, правило (8), п. 6.19 настоящей части);

  3. числовой операнд, не представляющий целое число, не может сравниваться с нечисловым операндом.

Размер операнда равен числу литер стандартного формата дан­ных в операнде. Числовые и нечисловые операнды могут срав­ниваться только тогда, когда их использование явно или неявно является одинаковым.

Правила сравнения для операндов равного размера и операн-; дов неравного размера различны.

  1. Если операнды имеют равный размер, то литеры операндов в соответствующих позициях сравниваются попарно, начиная от самой левой позиции, пока не встретятся неравные литеры или не будет достигнут правый конец.

Если все пары литер совпадают вплоть до последней пары, опе­ранды считаются равными.

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



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

  1. С р а в н е н и я, содержащие имена индек­сов и (или) индексные данные

Проверка отношения может быть выполнена только между:

  1. двумя именами индексов. Результат такой же, как если бы сравнивались номера вхождений;

  2. именем индекса и данным (отличным от индексного данно­го) или литералом. Номер вхождения, который соответствует име­ни индекса, сравнивается с данным или литералом;

  3. индексным данным и именем индекса или другим индекс­ным данным. Значения сравниваются без преобразования.

  1. Условие класса

Условие класса определяет, является ли операнд числовым, буквенным, буквенным прописным, буквенным строчным или со­держит лишь литеры из множества литер, заданного фразой CLASS (КЛАСС) параграфа SPECIAL-NAMES (СПЕЦИАЛЬ- НЫЕ-ИМЕНА) раздела оборудования. Класс операнда определя­ется следующим образом:

  1. операнд числовой, если он состоит из литер 1, 2, 3 . . . , 9,0 со знаком или без;

  2. операнд буквенный, если он состоит полностью из пропис­ных букв, пробелов, из строчных букв и пробела, или любой КОМ-) бинации прописных и строчных букв или любой комбинации про­писных, строчных букв и пробела;

  3. операнд буквенный строчный, если он полностью состоит из строчных букв и пробела;

  4. операнд буквенный прописной, если он полностью состоит из прописных букв и пробелов;

  5. операнд соответствует имени-класса, если он состоит лишь из литер, перечисленных в определении имени-класса в параграфе SPECIAL-NAMES (СПЕЦИАЛЬНЫЕ-ИМЕНА).

Общий формат для условия класса следующий:

NUMERIC

A

идентификатор-1 IS [NOT]

LPHABETIC ALPHABETIC-LOWER j

ALPHABETIC-UPPER имя-класса-1



Ч

идентификатор-1 [НЕ]

ИСЛОВОЕ БУКВЕННОЕ СТРОЧНЫЕ )

ПРОПИСНЫЕ J

имя-класса-1 '

Проверяемый операнд должен быть описан с использованием DISPLAY (ДЛЯ ВЫДАЧИ).

NOT (НЕ) (если оно используется) и следующее за ним ключе­вое слово задает одно условие класса, которое определяет выпол­няемую для установления истинности проверку. NOT NUMERIC (НЕ ЧИСЛОВОЕ) указывает проверку истинности для установле­ния того, является ли операнд нечисловым.

Проверка на NUMERIC (ЧИСЛОВОЕ) не может применяться к данному, описанному как буквенное или как групповое данное, составленное из элементарных данных, описания которых указы­вают на наличие знака числа. Если описание проверяемого данно­го не содержит указания на знак числа, то проверяемое данное бу­дет определено как числовое только в том случае, когда оно явля­ется числовым без знака. Если описание данного содержит указа­ние на знак числа, проверяемое данное будет определено как чис­ловое только в том случае, если его значение является числовой ве­личиной и имеет правильный знак. Правильным знаком числового данного, описанного с фразой SIGN IS SEPARATE (ЗНАК ОТ­ДЕЛЬНО), является одна из литер + или — в стандартном фор­мате данных; представление правильного знака данных, описание которых не содержит фразу SIGN IS SEPARATE (ЗНАК ОТ­ДЕЛЬНО), определяется реализацией.

Проверка на ALPHABETIC (БУКВЕННОЕ) не может приме­няться для данных, описанных как числовые. Результат проверки «истина», если содержимое данного, представленного идентифика­тором-1, состоит только из буквенных литер.

Проверка на ALPHABETIC-LOWER (СТРОЧНЫЕ) не может применяться для данных, описанных как числовые. Результат про­верки «истина», если содержимое данного, представленного иден­тификатором-1, состоит только из строчных букв и пробелов.

Проверка на ALPHABETIC-UPPER (ПРОПИСНЫЕ) не может применяться для данных, описанных как числовые. Резуль­тат проверки «истина», если содержимое данного, представленно­го идентификатором-1, состоит только из прописных букв и пробе­лов.

  1. Проверка с использованием имени-класса-1 не может приме­няться для данных, описанных как числовые.Условие имени-условия (условная переменная)