Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
STANDART PASCAL ISO 1990.doc
Скачиваний:
5
Добавлен:
17.11.2019
Размер:
251.66 Кб
Скачать

6.7.2 Operators

6.7.2.1 General

multiplying-operator = '*' ½ '/' ½ 'div' ½ 'mod' ½ 'and' .

adding-operator = '+' ½ '-' ½ 'or' .

relational-operator = '=' ½ '<>' ½ '<' ½ '>' ½'<=' ½ '>=' ½ 'in' .

A factor, a term, or a simple-expression shall be designated an operand. The order of evaluation of the operands of a dyadic operator shall be implementation-dependent.

NOTE --- This means, for example, that the operands may be evaluated in textual order, or in reverse order, or in parallel, or they may not both be evaluated.

6.7.2.2 Arithmetic operators

The types of operands and results for dyadic and monadic operations shall be as shown in tables 3 and 4 respectively.

NOTE --- 1 The symbols +, -, and * are also used as set operators (see 6.7.2.4).

A term of form x/y shall be an error if y is zero; otherwise, the value of x/y shall be the result of dividing x by y.

Table 3 --- Dyadic arithmetic operations

Operator Operation Type of operands Type of result

+ Addition integer-type ½

or real-type ½

- Subtraction integer-type ½integer-type if both operands

or real-type ½are of integer-type

* Multiplication integer-type ½otherwise real-type

or real-type ½

/ Division integer-type real-type

or real-type

div Division with integer-type integer-type

truncation

mod Modulo integer-type integer-type

Table 4 --- Monadic arithmetic operations

Operator Operation Type of operand Type of result

+ Identity integer-type integer-type

real-type real-type

- Sign-inversion integer-type integer-type

real-type real-type

A term of the form i div j shall be an error if j is zero; otherwise, the value of i div j shall be such that

abs(i) - abs(j) < abs( (i div j) * j) <= abs(i)

where the value shall bezero if abs(i) < abs(j); otherwise, the sign of the value shall be positive if i and j have the same sign and negative if i and j have different signs.

A term of the form i mod j shall be an error if j is zero or negative; otherwise, the value of i mod j shall be that value of (i-(k*j)) for integral k such that 0 <= i mod j < j.

NOTE --- 2 Only for i >= 0 and j > 0 does the relation (i div j) * j + i mod j = i hold.

The required constant-identifier maxint shall denote an implementation-defined value of integer-type. This value shall satisfy the following conditions.

a) All integral values in the closed interval from -maxint to +maxint shall be values of the integer-type.

b) Any monadic operation performed on an integer value in this interval shall be correctlty performed according to the mathematical rules for integer arithmetic.

c) Any dyadic integer operation on two integer values in this same interval shall be correctly performed according to the mathematical rules for integer arithmetic, provided that the result is also in this interval.

d) Any relational operation on two integer values in this same interval shall be correctly performed according to the mathematical rules for integer arithmetic.

Table 5 --- Set operations

OperatorOperationType of operandsType of result

+ Set union The same unpacked-canonical-set-of-T-type

- Set difference or packed-canonical-set-of-T-type Same as operands

* Set intersection (see 6.7.1)

The results of integer-to-real conversion, of the real arithmetic operators and of the required real functions shall be approximations to the corresponding mathematical results. The accuracy of this approximation shall be implementation-defined.

It shall be an error if an integer operation or function is not performed according to the mathematical rules for integer arithmetic.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]