Управляющие конструкции языка



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; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!