===== Типы данных ====== ==== Классификация типов данных ==== Типы, используемые в программе, написанной на в Паскале, делятся на **стандартные** и **пользовательские**. Первые "известны Паскалю" изначально. Они являются частью языка. Поэтому их иногда называют **предопредедёнными**. Вторые, пользовательские типы, описаны (определены) в программе, либо в одном из подключённых модулей, даже если этот модуль входит в состав системной библиотеки. Фактически, они являются расширением языка. С другой стороны, в Паскале, как и во многих других языках программирования, выделяют **простые** и **составные** типы данных. Простые типы данных иначе называют **скалярными**. Данные таких типов не могут быть разбиты на части. К ним традиционно относятся группы порядковых, действительных и, несколько условно, -- укозательных типов. Обратите внимание, что для действительного типа мы можем вычислить целую и дробную части, а целого типа определить знак, но мы их именно вычисляем, а не "берём готовенькими". Составные типы данных ==== Порядковые типы ==== === Целочисленные типы === ^ Тип ^ Размер ^ Диапазон значений ^ |Byte|1| 0 .. 255| |Shortint|1| -128 .. 127| |Smallint|2|-32 768 .. 32 767| |Word|2|0 .. 65 535 | |Integer|2 или 4|как у smallint или longint| |Cardinal|4|Longword| |Longint|4|-2 147 483 648 .. 2 147 483 647| |Longword|4|0 .. 4 294 967 295| |Int64|8|-9 223 372 036 854 775 808 .. 9 223 372 036 854 775 807| |QWord|8|0 .. 18 446 744 073 709 551 615| Типы ''Cardinal'', ''Longword'', ''Smallint'', ''Int64'', ''QWord'' используются во Free Pascal, но в Borland (Turbo) Pascal не используются. Могут отсутствовать и в других версиях языка Pascal, таких, как Pascal ABC. Целочисленные типы делятся по размеру занимаемой памяти, а также - по возможности или невозможности сохранять отрицательные значения. Первые называются знаковыми, вторые - беззнаковыми. === Логический ( boolean - булевский) тип === ^ Тип ^ Размер ^ Диапазон значений ^ |Boolean|1|False или True | По техническим причинам могут существовать другие логические типы, отличающиеся своим размером от стандартного ''boolean'', но нас они не интересуют. === Символьный тип (Char) === Стандартный для языка Pascal символьный тип имеет 256 значений. Переменные этого типа занимают один байт. ^ Тип ^ Размер ^ Диапазон значений ^ |Char|1|#0 .. #255 (Множество выводимых символов и соответствующие им номера зависят от кодировки) | ==== Вещественные типы (типы с плавающей запятой) ==== Эти типы используются для работы с дробными или с очень большими значениями. Обратите внимание, значения этих типов всегда рассматриваются как приближённые значения. ^ Тип ^ Размер ^ Диапазон значений ^ "Точных" знаков, после запятой ^ |Real|4 или 8|Зависит от платформы|???| |Single|4|1.5e-45 .. 3.4e38|7-8| |Double|8|5.0e-324 .. 1.7e308|15-16| |Extended|10|1.9e-4932 .. 1.1e4932|19-20| |Comp|8|-2e64+1 .. 2e63-1|19-20| |Currency|8|-922 337 203 685 477.5808 .. 922 337 203 685 477.5807|4| Тип Currency используются во Free Pascal, но в Borland (Turbo) Pascal не используется. Может отсутствовать и в других версиях языка Pascal, таких, как Pascal ABC. Тип ''Comp'' предназначен для хранения больших целых чисел со знаком, но использовать переменные данного типа вместо ''integer'', например - в качестве счётчика в цикле ''for'', нельзя. Он относится к группе ''real''-подобных типов.