Поиск…


Вступление

В иерархии типов Ады, элементарные типы имеют наборы логически неделимых значений. К таким типам относятся типы доступа (типы указателей) и скалярные типы. Скалярные типы могут быть классифицированы как перечисление , символ и числовые . Эти типы являются предметом этой темы. В дополнение к наборам значений типы имеют набор операций, применимых к соответствующим скалярам, ​​таким как преемник или "+" .

Синтаксис

  1. тип ... есть ...

параметры

эллипсис Какие
... (1) получить имя типа
... (2) для получения характеристик типа с использованием ключевых слов: дельта , цифры , диапазон

замечания

Все определения скалярного типа, кроме перечисления и модулярных целых чисел, могут включать ограничение диапазона .

Ограничение диапазона задает нижнюю границу и верхнюю границу набора значений для включения в тип. Для типов фиксированных точек указание диапазона является обязательным: значения этих типов будут пониматься как кратность небольшой доли двух, например, 1/2 5 . Чем меньше эти фракции, тем точнее представление, ценой диапазона, который может быть представлен с использованием доступных битов.

Могут быть даны дополнительные аспекты определений типов, такие как желаемый Size в битах и ​​другие репрезентативные элементы. Ada 2012 добавляет аспекты программирования на основе контракта, такого как Static_Predicate .

перечисление

type Fruit is (Banana, Orange, Pear);

Choice : Fruit := Banana;

Тип символа - это перечисление, которое включает символьный литерал:

type Roman_Numeral is
    ('I', 'V', 'X', 'L', 'C', 'D', 'M', Unknown);`

Singed Integer

type Grade is range 0 .. 15;

B   : Grade := 11;
C   : Grade := 8;
Avg : Grade := (B + C) / 2;  -- Avg = 9

Модульное целое

Это типы «бит-пустяков». У них также есть логические операторы, такие как xor , и они «обертываются» в верхней границе, а затем снова 0.

type Bits is mod 2**24;

L : Bits := 2#00001000_01010000_11001100# or 7;

Плавающая запятая

Тип с плавающей точкой характеризуется цифрами (десятичными), которые определяют запрашиваемую минимальную точность.

type Distance is digits 8;

Earth : Distance := 40_075.017;

Фиксированная точка (обычная)

Определение типа фиксированной точки определяет дельта и диапазон. Вместе они описывают, как точно реальные значения должны быть аппроксимированы, поскольку они представлены степенями двух, не использующими аппаратные средства с плавающей точкой.

Shoe_Ounce : constant := 2.54 / 64.0;
type Thickness is delta Shoe_Ounce range 0.00 .. 1.00;

Strop : Thickness := 0.1;  -- could actually be 0.09375

Фиксированная точка (десятичная)

Типы десятичных фиксированных точек обычно используются в бухгалтерском учете. Они характеризуются как дельта, так и числом десятичных цифр. Их арифметические операции отражают правила бухгалтерского учета.

type Money is delta 0.001 digits 10;

Oil_Price : Money := 56.402;
Loss      : Money := 0.002 / 3; -- is 0.000


Modified text is an extract of the original Stack Overflow Documentation
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow