Справочное руководство по языку Ада-83


Операции и вычисление выражения - часть 10


Никакие другие операции для типа

универсальный-фиксированный

не определены.

Исключение NUMERIC_ERROR возбуждается операциями целого деления

rem и mod, если правый операнд равен нулю.

Примеры:

I : INTEGER := 1; J : INTEGER := 2; К : INTEGER := 3;

X : REAL diglts 6 := 1.0; — СМ. 3.5.7 Y : REAL diglts 6 := 2.0;

F : FRACTION delta 0.0001 := 0.1; — СМ. 3.5.9 G : FRACTION delta 0.0001 := 0.1;

Выражение

Значение

Тип результата

I . J

2

Тот же, что тип I и J, т. е. INTEGER

K/J

1

Тот же, что тип К и J, т.е. INTEGER

К

mod

J

1

Тот же, что тип К и J, т. е. INTEGER

X/Y

0.5

Тот же, что тип Х и Y, т. е. REAL

F/2

0.05

Тот же, что тип F, т.е. FRACTION

3 *. F

0.3

Тот же, что тип F, т. е. FRACTION

F * G

0.01

Универсальный-фиксированный

требуется

преобразование

FRACTION (F * G)0.01

FRACTION в результате преобразования

 

REAL(J) * Y

4.0

REAL, как и тип обоих операндов после

преобразования

Примечание.

Для положительных А и В частное задается выражением А/В, а остаток от деления А на В задается А

rem

В. Операция

rem

удовлетворяет следующим соотношениям:

А rem (-В) = А rem В (-А) rem В = -(А rem В)

Для некоторого целого К справедливо следующее тождество:

А

mod

В = (А + К*В)

mod

В

Соотношения между делением нацело, остатком и вычетом по модулю иллюстрируются следующей таблицей:

А

В

А/В

А rem В

A mod B

А

В

А/В

А rem В

A mod B

10

5

2

0

0

-10

5

-2

0

0

11

5

2

1

1

-11

5

-2

-1

4

12

5

2

2

2

-12

5

-2

-2

3

13

5

2

3

3

-13

5

-2

-3

2

14

5

2

4

4

-14

5

-2

-4

1

10

-5

-2

0

0

-10

-5

2

0

0

11

-5

-2

1

-4

-11

-5

2

-1

-1

12

-5

-2

2

-3

-12

-5

2

-2

-2

13

-5

-2

3

-2

-13

-5

2

-3

-3

14

-5

-2

4

-1

-14

-5

2

-4

-4

<




Начало  Назад  Вперед



Книжный магазин