Действительные типы
В переменных действительных типов содержатся числа, состоящие из целой и дробной частей. В Object Pascal определено шесть действительных типов. Все типы могут представлять число 0, однако они различаются пороговым (минимальным положительным) и максимальным значениями, которые могут представлять, а также точностью (количеством значащих цифр) и объемом. Действительные типы описываются в табл. 1.5.
Таблица 1.5. Действительные типы.
Тип | Порог | Максимальное значение | Количество значащих цифр | Объем (байт) |
Real | 2.9E-39 | 1.7Е38 | 11-12 | 6 |
Single | 1.5E-45 | 3.4Е38 | 7-8 | 4 |
Double | 5.0E-324 | 1.7Е308 | 15-16 | 8 |
Extended | 3.4E-4932 | 1.IE4932 | 19-20 | 10 |
Comp | 1.0 | 9.2Е18 | 19-20 | 8 |
Currency | 0.0001 | 9.2Е14 | 19-20 | 8 |
Совет:
Тип Real предназначен для совместимости с ранними версиями Delphi и Borland Pascal. Формат этого типа неудобен для семейства процессоров Intel, поэтому операции с типом Real выполняются несколько медленнее операций над остальными действительными типами.
Целые типы представляют целые числа, т.е. числа, дробная часть которых равна нулю. Разница между двумя неодинаковыми целыми числами не может быть меньше единицы. Именно благодаря этому целые числа применяются для обозначения дискретных величин, независимо от того, имеют ли реальные объекты какое-либо отношение к числам. Действительные типы предназначены для представления чисел, которые могут иметь дробную часть, поэтому они полезны для представления величин, которые могут быть довольно близкими, почти непрерывными.
Заметьте, именно почти. Несмотря на название действительные, переменные этих типов отличаются от математических действительных чисел. В Object Pascal действительный тип — это подмножество математических действительных чисел, которые можно представить в формате с плавающей запятой и фиксированным числом цифр. Для невнимательных программистов ситуация усугубляется тем, что в стандартных форматах IEEE (Institute of Electrical and Electronic Engi-neers — Институт инженеров- электриков и электронщиков), применяемых в программах Delphi и вообще в большинстве программ для Windows, возможно точное представление только чисел с фиксированным числом бит в дробной части. Удивительно, но такое простое число, как 0,1, записывается в расширенном формате IEEE с некоторой погрешностью, пусть очень небольшой. Из-за этого представление с плавающей запятой оказывается несколько неудобным для программ, в которых сохраняется и выводится фиксированное число десятичных разрядов численных значений. Это относится и к программам, работающим с ''живыми" деньгами.
Для частичного решения этой проблемы в Object Pascal определены два формата с фиксированной запятой. Тип Comp (computational — вычислительный) содержит только целые числа в диапазоне от -263+1 до 263-1, что примерно соответствует диапазону от —9,2х1018до 9,2х1018. При программировании операций с американской валютой разработчикам обычно приходится искать естественный способ записи денежных сумм, в котором целая часть числа определяет количество долларов, дробная — центов. Если такие значения записывать в переменные типа Comp, придется представлять их в виде целого числа центов. В этом случае следует умножать значение на 100 для обращения центов в доллары, а затем делить на 100, чтобы снова получить центы.
Этих забот можно избежать, если воспользоваться типом Currency. В этом случае задачу выбора масштаба возьмет на себя компилятор. Физически значения Currency записываются в память того же объема, что и Comp, как целые числа, однако компилятор не забывает вовремя разделить значение на 10 000 (не на 100!) для его приведения в соответствие с денежным знаком и умножить на 10 000 перед записью в память. Это обеспечивает абсолютную точность в четыре десятичных знака после запятой.
В Delphi есть модуль System, содержащий ряд процедур обработки данных действительных типов. Наиболее распространенные из них перечислены в табл. 1.6. Много полезных процедур содержится также в модулях SysUtils и Math.
Таблица 1.6 - Функции действительных типов
Функция | Возвращаемое значение |
Abs (x) | Абсолютная величина х |
АгсТаn(х) | Арктангенс х |
Cos (х) | Косинус х (х выражается в радианах, а не в градусах) |
Ехр (х) | Экспоненциальная функция от х |
Frac(x) | Дробная часть х |
Int (х) | Целая часть х. Несмотря на название, возвращает действительное значение (с плавающей запятой), т.е. просто устанавливает нуль в дробной части |
Ln (х) | Натуральный логарифм от х |
Pi | Число Пи (3.1416...) |
Round (х) | Ближайшее к х целое значение. Возвращает значение целого типа. Условие "ближайшее к х" не работает, если верхнее и нижнее значения оказываются равноудаленными (например, ес-ли дробная часть точно равна 0,5). В этих случаях Delphi перекладывает решение на опера-ционную систему. Обычно процессоры Intel решают эту задачу в соответствии с рекоменда-цией IEEE округлять в сторону ближайшего четного целого числа. Иногда такой подход на-зывают "банкирским округлением" |
Sin(x) | Синус х |
Sqr(x) | Квадрат х, т.е. X*X |
Sqrt (х) | Квадратный корень от х |
Тrunc (х) | Целая часть х. В отличие от Int, возвращающей действительное значение, Trunc возвращает целое |
24.
По умолча́нию (англ. default) — предустановленные значения параметров или предопределённый способ выполнения операции, которые программная система или приложение используют в своей работе, пока пользователь не изменит эти установки явным образом[1]. Выражение «по умолчанию» часто употребляется в инструкциях к компьютерным программам, где пользователь должен сделать выбор из нескольких вариантов задания и сообщить свой выбор компьютеру. Для удобства пользователей, разработчики формируют наиболее популярную цепь вариантов выбора и помечают входящие в неё варианты метками «по умолчанию», позволяя тем самым пользователю избежать зачастую длительного настраивания программы, приняв предложенные настройки.
- 7. Что такое электронная таблица?
- Ввод и редактирование данных
- Формат данных
- Функции и формулы
- Понятие формулы
- Понятие функции
- Мастер функций
- [Править]Применение в серверных приложениях
- [Править]Мультиплексирование
- Методы и средства защиты от несанкционированного доступа
- Криптография и шифрование Что такое шифрование
- Основные термины и определения криптографии
- Открытые ключи
- Проблемы использования открытых/закрытых ключей
- Сертификат
- [Править]Центры доверия
- Создание отчётов
- Изменение структуры отчёта
- Создание таблиц в режиме конструктора
- Формирование запросов на выборку
- Параметрические запросы
- Запросы на обновление
- Редактирование запросов
- Поля и записи
- Порядковые типы
- Целые типы
- Символьные типы
- Булевы типы
- Перечислимые типы
- Поддиапазонные типы
- Действительные типы
- [Править]Использование в форматах файлов
- 3.1. Выполнение задания
- 6.2 Построитель выражений
- Создание кнопочной формы с помощью диспетчера кнопочных форм
- Примечания
- Групповые функции в операторе select:
- Раторы сравнения
- Виды отношений
- Отношения в App Engine Один-ко-многим
- Один-к-одному
- Многие-ко-многим
- 2. Свойства алгоритмов.
- Вывод «Основные свойства алгоритмов»:
- 3. Способы описания алгоритмов.
- Тестирование программного обеспечения
- [Править]Уровни тестирования
- [Править]Статическое и динамическое тестирование
- [Править]Регрессионное тестирование
- [Править]Тестовые скрипты
- [Править]Тестирование «белого ящика» и «чёрного ящика»
- [Править]Покрытие кода
- Обеспечение целостности базы данных
- Электронная почта (e-mail)
- Группы новостей
- Службы мгновенных сообщений
- Основы tcp/ip
- Краткое описание протоколов семейства tcp/ip с расшифровкой аббревиатур
- Архитектура tcp/ip
- Уровни сетей и протоколы tcp/ip
- Краткое заключение