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


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


/p>

Операции над массивами выполняются покомпонентно, если компоненты имеются (как для равенства, см. 4.5.2). Границы массива-результата совпадают с границами левого операнда. Для каждой компоненты левого операнда проверяется наличие соответствующей компоненты правого операнда, и наоборот. При нарушении соответствия компонент возбуждается исключение CONSTRAINT_ERROR.

Формы управления промежуточной проверкой

and then и or else

определены для двух операндов логического типа и вырабатывают результат того же самого типа. Левый операнд формы управления промежуточной проверкой всегда вычисляется первым. Если левый операнд выражения с формой

and then

дает значение FALSE, то правый операнд не вычисляется и значением выражения является FALSE. Если левый операнд с формой

or else

дает TRUE то правый операнд не вычисляется и значением выражения является TRUE. Если вычисляют ся оба операнда, то результат

and then

такой же, как

and,

а результат

or else

— как

ог.

Примечание.

Обычный смысл логических операций задается следующей таблицей истинности:

А

В

A and B

A or B

A xor B

TRUE

TRUE

TRUE

TRUE

FALSE

TRUE

FALSE

FALSE

TRUE

TRUE

FALSE

TRUE

FALSE

TRUE

TRUE

FALSE

FALSE

FALSE

FALSE

FALSE

Примеры логических операций:

SUNNY or WARM FILTER(1 .. 10) and FILTER(15 .. 24) -- см. 3.6.1

Примеры форм управления с промежуточной проверкой:

NEXT_CAR.OWNER /= null and then NEXT_CAR.OWNER.AGE > 25 N = 0 or else A(N) = HIT_VALUE -- см. 3.8.1

Ссыпки:

возбуждение исключений 11, граница диапазона индекса 3.6.1, индексируемый тип 3.6, исключение CONSTRAINT_ERROR 11.1, компонента массива 3.6, логический тип 3.5.3, логическое значение FALSE 3.5.3, логическое значение TRUE 3.5.3, операция 4.5, операция типа 3.3, подтип индекса 3.6, предопределенная операция 4.5, пустой массив 3.6.1, размерность 3.6, сопоставимые компоненты массивов 4.5.2, тип 3.3.

4.5.2.




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