ada
Скалярные типы
Поиск…
Вступление
В иерархии типов Ады, элементарные типы имеют наборы логически неделимых значений. К таким типам относятся типы доступа (типы указателей) и скалярные типы. Скалярные типы могут быть классифицированы как перечисление , символ и числовые . Эти типы являются предметом этой темы. В дополнение к наборам значений типы имеют набор операций, применимых к соответствующим скалярам, таким как преемник или "+" .
Синтаксис
- тип ... есть ...
параметры
| эллипсис | Какие |
|---|---|
| ... (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