Управляющие конструкции языка
3.2.1. Типы данных в Паскале
Данные, с которыми работает программа, хранятся в оперативной памяти. Компилятору необходимо точно знать, сколько места они занимают, как именно закодированы и какие действия с ними можно выполнять. Все это задается при описании данных с помощью типа.
Тип данных однозначно определяет:
1. внутреннее представление данных,
2. множество их возможных значений;
3. допустимые действия над данными (операции и функции).
Например, целые и вещественные числа, даже если они занимают одинаковый объем памяти, имеют совершенно разные диапазоны возможных значений; целые числа можно умножать друг на друга, а, например, символы — нельзя. Каждое выражение в программе имеет определенный тип. Компилятор использует информацию о типе при проверке допустимости описанных в программе действий.
Классификация типов
Рассмотрим классификацию типов данных Паскаля.
Таблица 2
Типы данных Паскаля
Стандартные | Определяемые программистом | |
Логические | Простые | Сложные (составные) |
Перечисляемый | Массивы | |
Целые | Интервальный | Строки |
Вещественные | Адресные | Записи |
Символьный | Множества | |
Строковый | Файлы | |
Адресный | Процедурные типы | |
Файловые | Объекты |
Стандартные типы не требуют предварительного определения. Для каждого типа существует ключевое слово, которое используется при описании переменных, констант и т. д. Если же тип данных определяет сам программист, он описывает его характеристики и дает ему имя, которое затем применяется точно так же, как имена стандартных типов. Описание собственного типа данных должно задавать всю информацию, необходимую для его использования: внутреннее представление и допустимые действия.
|
|
Примечание. Типы, выделенные в таблице 2 полужирным шрифтом, объединяются термином 'порядковые'. Этот термин рассмотрен далее.
Стандартные типы данных
1) Логические типы boolean
Внутреннее представление. Основной логический тип данных Паскаля называется boolean. Величины этого типа занимают в памяти 1 байт и могут принимать всего два значения: true (истина) или false (ложь). Внутреннее представление значения false — 0 (нуль), значения true — 1.
Операции. К величинам логического типа применяются логические операции and, or, xor и not (таблица 3). Для наглядности вместо значения false в таблице используется 0, а вместо true — 1.
Таблица 3
Логические операции
a | b | a and b | a or b | a xor b | not a |
0 | 0 | 0 | 0 | 0 | 1 |
0 | 1 | 0 | 1 | 1 | 1 |
1 | 0 | 0 | 1 | 1 | 0 |
1 | 1 | 1 | 1 | 0 | 0 |
Величины логического типа можно сравнивать между собой с помощью операций отношения (>,<, >=, <=, < >). Результат этих операций имеет логический тип.
|
|
2) Целые типы
Внутреннее представление. Целые числа представляются в компьютере в двоичной системе счисления. В Паскале определены несколько целых типов данных, отличающиеся длиной и наличием знака: старший двоичный разряд либо воспринимается как знаковый, либо является обычным разрядом числа (таблица 4). Внутреннее представление определяет диапазоны допустимых значений величин (от нулей до единиц во всех двоичных разрядах).
Таблица 4
Целые типы данных
Тип | Название | Размер | Знак | Диапазон значений |
integer | Целое | 2 байта | Есть | –32 768 .. 32 767 (–215 .. 215–1) |
shortint | Короткое целое | 1 байт | Есть | –128 .. 127 (–2 7 .. 27–1) |
byte | Байт | 1 байт | Нет | 0 .. 255 (0 .. 28–1) |
word | Слово | 2 байта | Нет | 0 .. 65 535 (0 .. 2 16–1) |
longint | Длинное целое | 4 байта | Есть | –2 147 483 648 .. 2 147 483 647 (–2 31 .. 231–1) |
Операции. С целыми величинами можно выполнять арифметические операции: +, -, *, div, mod. Результат их выполнения всегда целый (при делении дробная часть отбрасывается).
К целым величинам можно также применять операции отношения, а также поразрядные операции and, or, xor и not, такие операции называются побитовыми. При выполнении этих операций каждая величина представляется как совокупность двоичных разрядов. Действие выполняется над каждой парой соответствующих разрядов операндов. Например, результатом операции 3 and 2 будет 2, поскольку двоичное представление числа 3 — 11, числа 2 — 10, т.е. 11 and 10 = 10.
|
|
Для работы с целыми величинами предназначены также операции сдвига влево shl и вправо shr. Слева от знака операции указывается, с какой величиной будет выполняться операция, а справа — на какое число двоичных разрядов требуется сдвинуть величину. Например, результатом операции 12 shr 2 будет значение 3, а выполнив операцию 12 shl 1, то есть сдвинув это число влево на 1 разряд, получим 24. Освободившиеся при сдвиге влево разряды заполняются нулями, а при сдвиге вправо — знаковым разрядом.
Стандартные функции и процедуры. К целым величинам можно применять стандартные функции и процедуры. Полный перечень функций и процедур, их синтаксис и особенности, можно найти в справочной системе Паскаля и в источниках перечисленных в списке литературы к данной главе.
3) Вещественные типы
Внутреннее представление. Вещественные типы данных хранятся в памяти компьютера иначе, чем целые. Внутреннее представление вещественного числа состоит из двух частей — мантиссы и порядка, и каждая часть имеет знак. Например, число 0,087 представляется в виде 0,87 10–1, и в памяти хранится мантисса 87 и порядок –1 (для наглядности мы пренебрегли тем, что данные на самом деле представляются в двоичной системе счисления и несколько сложнее).
|
|
Существует несколько вещественных типов, различающихся точностью и диапазоном представления данных (таблица 5). Точность числа определяется длиной мантиссы, а диапазон — длиной порядка.
Таблица 5
Вещественные типы данных
Тип | Название | Размер | Значащих десятичных цифр | Диапазон значений |
real | Вещественный | 6 байт | 11–12 | 2.9e–39 .. 1.7e+38 |
single | Одинарной точности | 4 байта | 7–8 | 1.5e–45 .. 3.4e+38 |
double | Двойной точности | 8 байт | 15–16 | 5.0e–324 .. 1.7e+308 |
extended | Расширенный | 10 байт | 19–20 | 3.4e–4932 .. 1.1e+4923 |
comp | Большое целое | 8 байт | 19–20 | –9.22e18 .. 9.22e18 (–2 63 .. 2 63–1) |
Величины типа comp хранятся так же, как целые, но отнести его к целым мешает то, что тип comp не относится к порядковым типам.
Операции. С вещественными величинами можно выполнять арифметические операции (+, -. *, /). Результат их выполнения — вещественный.
В общем случае при выполнении любой операции операнды должны быть одного и того же типа, но целые и вещественные величины смешивать разрешается.
К вещественным величинам можно также применять операции отношения.
Стандартные функции. К вещественным величинам также как к целым можно применять стандартные функции.
4) Символьный тип
Этот тип данных, обозначаемый ключевым словом char, служит для представления любого символа из набора допустимых символов. Под каждый символ отводится 1 байт. К символам можно применять операции отношения (<, <=, >, >=, =, <>) , при этом сравниваются коды символов. Меньшим окажется символ, код которого меньше. Других операций с символами нет. Стандартных подпрограмм для работы с символами тоже немного (таблица 6).
Таблица 6
Дата добавления: 2018-09-22; просмотров: 322; Мы поможем в написании вашей работы! |
Мы поможем в написании ваших работ!