Мегаобучалка Главная | О нас | Обратная связь


Стандартные типы данных



2015-11-10 757 Обсуждений (0)
Стандартные типы данных 0.00 из 5.00 0 оценок




Структуры данных в Delphi

2.1.1. Числовые типы

Некоторые типы данных, стандартные для языка Pascal, немного изме­нились в сторону расширения диапазона возможных значений и, соот­ветственно, увеличения занимаемого места. Это связано с тем, что со­здаваемые в Delphi приложения ориентированы на работу в операционной системе Windows, а не DOS, что накладывает на них некоторые требова­ния. Программы, выполняемые в Windows, широко используют систем­ные функции операционной системы, передавая им множество парамет­ров. Таким образом, представление информации в Delphi должно соответствовать представлению аналогичной информации в Windows.

Рассмотрим сравнительные таблицы типов данных в Pascal и Delphi (см. табл. 2.1 и 2.2), в которых указаны сведения о типах данных в Pascal и Delphi. В нижних частях таблиц приводятся сведения о новых типах дан­ных, которых не было в языке Pascal.

Из сравнительных таблиц видно, что среди целочисленных типов дан­ных не произошло существенных изменений, за исключением увеличе­ния диапазона типа Integer.Это связано с частым использованием дан­ного типа при передаче параметров системным функциям Windows. Также добавлены новые Типы Cardinal, Int64и Longwordдля более удобной организации структур данных в программе.

Новый целочисленный тип данных Smallintсоответствует типу Integerязыка Pascal и добавлен в Delphi для упрощения переноса фрагментов текста из старых программ, работающих в операционной системе DOS, которые используют переменные типа Integerи чувствительны к воз­можному изменению размеров этих переменных. При переносе таких фрагментов ссылки на тип Integerследует заменять на Smallint.

Среди вещественных типов данных изменены возможности типов Real, Extendedи Comp,а также, для совместимости с программами, написан­ными на Turbo Pascal, добавлен новый тип Real48,совпадающий с ти­пом Realязыка Pascal.

Особого внимания заслуживает новый вещественный тип данных Currency,предназначенный для использования в финансовых вычислениях и при­званный исключить ошибки искажения значений, присущие переменным с плавающей точкой. Переменные типа Currencyна самом деле хранятся не как вещественные переменные, а как целочисленные переменные типа Int64,а при использовании их в выражениях автоматически делятся на 10000. Таким образом, значения переменных типа Currencyявляются числами не с плавающей точкой, а с фиксированной.

Сравнительная таблица целочисленных типов данных в Pascal и Delphi

Таблица 2.1

2.1.2. Строковые типы данных

В языке программирования Pascal для работы со строками был предус­мотрен тип String,представляющий собой последовательность (массив) символов, размером до 255-ти байт, в начале которой находилось одно­байтовое число, содержащее длину строки. С другой стороны, в языке С, на который, в основном, ориентируется среда Windows, строки хра­нятся в так называемом ASCIIZ-формате.

Каждая строка в формате ASCIIZ представляет собой указатель на мас­сив символов, который заканчивается нулевым символом. Такое представ­ление строки имеет свои преимущества — например, практически нео­граниченная длина ASCIIZ-строк, и свои недостатки — связанные с неудобством использования указателей (ссылочных переменных).

В Delphi предлагается компромисс между двумя подходами к хранению строк. Внутреннее представление строки реализовано динамически, в ASCIIZ-формате, тогда как с точки зрения программиста строка являет­ся массивом символов известной длины (символы в массиве пронумеро­ваны от единицы). В связи с этим отменена возможность доступа к ну­левому элементу строки с целью получения ее длины. Длину строки в Delphi можно определить с помощью функции Length:

Length(<Строка>): Integer;

Установить длину строки можно с помощью процедуры SetLength:SetLength(<Строка>, <Новая длина>);

Еще одной особенностью работы в среде Windows является возможность использования кодировки символов Unicode, в которой каждый символ представляется не одним, а двумя байтами. Кодировка Unicode предназ­начена для индексации символов нескольких алфавитов одновременно. Строковые типы данных, доступные в Delphi, описаны в табл. 2.3.

Тип ShortStringвведен для обратной совместимости с Pascal под DOS и не рекомендуется для использования. Переменной, описанной с ис­пользованием устаревшего типа String, назначается тип ShortString, если при компиляции директива ннаходится в выключенном состоянии: {$н-},или Ansistring, если при компиляции директива ннаходится во включенном состоянии: {$Н+}.

Для больи;;::-: Unicode) д.:я вать тип я.-5:

Строковые типы данных в Delphi

Таблица 2.3

Название типа Максимальная длина, символов Занимаемая память Размер символа, байт
ShortString От 2 до 256 байт
AnsiString   От 4 байт до 2 Гб
WideString   От 4 байт до 2 Гб

 

Для большинства случаев (не связанных с использованием кодировки Unicode) для описания строковых переменных рекомендуется использо­вать ТИП AnsiString.

2.1.3. Другие стандартные типы данных

Работа с другими типами данных, предусмотренными в Delphi, не отли­чается от использования аналогичных типов данных в Pascal.

Например, вместо одного логического типа данных в Pascal, в Delphi существует целых четыре: Boolean, ByteBool, WordBoolи LongBool.Такое разнообразие типов предусмотрено для обеспечения совместимости с другими языками программирования и средами выполнения. Как видно из их названий, они отличаются друг от друга только размером, и без особой необходимости нет смысла в использовании для описания логи­ческих переменных какого-либо другого типа вместо обычного Boolean.



2015-11-10 757 Обсуждений (0)
Стандартные типы данных 0.00 из 5.00 0 оценок









Обсуждение в статье: Стандартные типы данных

Обсуждений еще не было, будьте первым... ↓↓↓

Отправить сообщение

Популярное:
Как распознать напряжение: Говоря о мышечном напряжении, мы в первую очередь имеем в виду мускулы, прикрепленные к костям ...
Генезис конфликтологии как науки в древней Греции: Для уяснения предыстории конфликтологии существенное значение имеет обращение к античной...



©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (757)

Почему 1285321 студент выбрали МегаОбучалку...

Система поиска информации

Мобильная версия сайта

Удобная навигация

Нет шокирующей рекламы



(0.007 сек.)