Система автоматизации библиотек ИРБИС


Числовые выражения


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

В числовых выражениях можно использовать следующие операнды:

Числовые константы:

например, 5, 18, 98.65. Числовые константы могут быть представлены в виде целых чисел, чисел с десятичной точкой или чисел в экспоненциальной форме, например, 1.5Е5 (обозначающее 1.5 умноженное на 10 в 5-ой степени, т.е. 150000). Числа могут быть со знаком или без.

Числовые функции:

Например, val(v10) (см. их описание в п. 8.1.).



MFN:

Значение MFN записи.

Числовые выражения:

при использовании их в качестве операндов они должны быть заключены в круглые скобки, например, (val(v20)-5).

Допустимыми операторами являются:

·         сложение;

·         вычитание;

·         умножение;

·         /     деление.

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

Отметим, что т. к. команды вывода полей (например, v10 или v10^a) дают текстовые строки, они не могут использоваться в качестве операндов числовых выражений. Однако, для преобразования содержимого поля или подполя в числовое значение может быть использована функция VAL (см. ниже).

Аналогичным образом, числовое выражение не может быть непосредственно выведено на экран или печать, а должно быть предварительно преобразовано в строку символов, используя функцию F (см. ниже).

Ниже приведены примеры числовых выражений (при этом предполагается, что MFN=10, v1^a=10, v1^b=20 и v2=30):

Выражение                                             Значение

-------------------------------                          ----------------

..0.155е+3                                                155

  1е-3                                                        0.001

  2*3+9                                                     15

  2*(3+9)                                                   24

  10-(4*(2-1))                                            6

  15*0.001                                                 0.015

  mfn+100                                                            110

  val(v2)+val(v1^a)*7.5                            105

  (val(v1^a)-val(v1^b))/100                      -0.1



Содержание раздела