Существует встроенный тип Duration, который
Существует встроенный тип Duration, который используется для измерения временных интервалов. Здесь подходит тип с фиксированной точкой, потому что время будет иметь абсолютную погрешность (скажем 0.0001 с) в зависимости от аппаратных средств компьютера.
Для обработки коммерческих данных в Ada 95 определены десятичные типы с фиксированной точкой.
type Cost is delta 0.01 digits 10;
В отличие от обычных типов с фиксированной точкой, которые представляются степенями двойки, эти числа представляются степенями десяти и, таким образом, подходят для точной десятичной арифметики. Тип, объявленный выше, может поддерживать значения до 99999999.99.
9.5. Упражнения
1. Какие типы с плавающей точкой существуют на вашем компьютере? Перечислите диапазон и точность представления для каждого типа. Используется ли смещение в представлении экспоненты? Выполняется ли нормализация? Есть ли скрытый старший бит? Существует ли представление бесконечности или других необычных значений?
2. Напишите программу, которая берет число с плавающей точкой и печатает знак, мантиссу и экспоненту (после удаления всех смещений).
3. Напишите программу для целочисленного сложения и умножения с неограниченной точностью.
4. Напишите программу для печати двоичного представления десятичной дроби.
5. Напишите программу для BCD-арифметики.
6. Напишите программу для эмуляции сложения и умножения с плавающей точкой.
7. Объявите различные типы с фиксированной точкой в Ada и проверьте, как представляются значения. Как представляется тип Duration?
8. В Ada существуют ограничения на арифметику с фиксированной точкой. Перечислите и обоснуйте каждое ограничение.