ГОСТ Р И С 0 10303-11 — 2009
Деление по модулю (MOD) и целочисленноеделение (DIV) дают целочисленный результат (если при
этом ни один из операндов не имеет неопределенного (?) значения). Если какой-либо операнд имеет тип
данных REAL, то перед выполнением данного оператора его значение преобразуется в значение типа
INTEGER усечением, то есть его дробная часть отбрасывается. Для любых целых чисел а и Ь всегда
справедливо равенство (a DIV b)»b ♦ с*(а MOD Ь) = а.где с=1 для Ь>=0 и с = - 1 для Ь<0.
Абсолютное значение выражения a MOD b должно быть меньше, чем абсолютное значение Ь, а знак
выражения a MOD b должен совпадать со знаком Ь.
Если какой-либо из операндов арифметического оператора имеет неопределенное (?) значение, то
результат операторадолжен иметь неопределенное (?) значение.
Округлениедействительных чисел.
Когда требуется округление, оно осуществляется с точностью р (либо заданной в явном виде для
типа данных REAL, либо определяемой ограничением для конкретной реализации, устанавливаемым в
соответствии с приложением Е) по следующему алгоритму;
a) преобразовать представление числа вэкспоненциальный формат с удалением всех предшествую
щих нулей;
b
) установить указатель разряда к на р-ю позицию справа от десятичной точки;
c) если действительное число является положительным, то выполняются следующие действия:
-если цифра, расположенная на позиции к, принадлежит к диапазону от 5 до 9. то добавить 1
к цифре, расположенной на позиции к -1, а цифры, начиная с позиции к идалее, отбросить. Перейти к шагу
по перечислению е);
- если цифра, расположенная на позиции к, принадлежит кдиапазону от 0 до 4. то цифры, начиная
с позиции к идалее, отбросить. Перейти к шагу по перечислению h);
d) если действительноечисло является отрицательным, то выполняются следующиедействия;
- если цифра, расположенная на позиции к, принадлежит к диапазону от 6 до 9. то добавить 1 к
цифре, расположенной на позиции Л-1. а цифры, начиная с позиции к идалее, отбросить. Перейти к шагу по
перечислению е);
- если цифра, расположенная на позиции к, принадлежит кдиапазону от 0 до 5. то цифры, начиная
с позиции к идалее, отбросить. Перейти к шагу по перечислению h);
e) присвоить указателю разряда к значение к -1;
0 если цифра, расположенная на позиции к. принадлежит кдиапазону от 0 до 9. то перейти к шагу по
перечислению h);
g) если цифра, расположенная на позиции к, имеет значение 10. то добавить 1 к цифре, расположен
ной на позиции к - 1. и установить цифру, расположенную на позиции к, в 0. Перейти к шагу по перечисле
нию е);
h) округление действительного числа завершено.
П р и м е ч а н и е — В результате действия данного алгоритма число 0.5 округляется до 1. а число -0.5
округляется до 0.
Пример - Данный пример показывает результат задания числа значащих цифр в дробной части
действительного числа, то есть его точности.
LOCAL
distance ; REAL(6);
xl . yl . zl : REAL;
x2, y2, z2 : REAL;
ENDLOCAL:
x1 := 0.; y1 := 0.; z1 := 0.;
x2 := 10.; y2:=11.; z2 := 12.;
distance := SQRT( (x2-x1)**2 ♦ (y2-y1)»»2 + (z2-z1)‘»2);
Вычисленное значение объекта distance равно 1.9104973 ... e+1, но, его реальным значением
будет 1.91050е+1, поскольку в спецификации данного объекта задана точность, равная шести знача
щим цифрам, поэтому будут оставлены только шесть значащих цифр.
12.2 Операторы отношений
К операторам отношений относятся операторы сравнения значений, сравнения экземпляров, принад
лежности (IN) и сопоставления строк (LIKE). Результатом вычисления выражения отношения является зна
чение типа LOGICAL (TRUE. FALSE или UNKNOWN). Если хотя бы один из операндов имеет неопределен
ное (?) значение, то выражению присваивается значение UNKNOWN.
70