Числовые выражения
Числовое выражение формируется из операндов, которые имеют числовое значение, и операторов, определяющих вид вычислений.
В числовых выражениях можно использовать следующие операнды:
Числовые константы: | например, 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