3.2. Простые типы данныхв Turbo Pascal 7
Простой тип определяет упорядоченное множество значений параметра. В Turbo Pascal имеются следующие группы простых типов:
- целые типы;
- логический тип;
- символьный тип;
- перечисляемый тип;
- тип-диапазон;
- вещественные типы.
Все простые типы, за исключением вещественных, называются порядковыми типами. Для величин порядковых типов определены стандартные процедуры и функции: Dec, Inc, Ord, Pred, Succ (см. п. 13.1).
3.2.1. Целые типы
В отличие от языка Паскаль, где определен единственный целый тип Integer, в Turbo Pascal имеется пять стандартных типов целых чисел: Shortint, Integer, Longint, Byte, Word. Характеристики этих типов приведены в табл. 2.
Таблица 2. Целые типы данных
Тип |
Диапазон |
Формат |
Размер в байтах |
Shortint |
-128 .. 127 |
Знаковый |
1 |
Integer |
-32768 .. 32767 |
Знаковый |
2 |
Longint |
-2147483648 .. 2147483647 |
Знаковый |
4 |
Byte |
0 .. 255 |
Беззнаковый |
1 |
Word |
0 .. 65535 |
Беззнаковый |
2 |
3.2.2. Логический тип
Стандартный логический тип Boolean (размер - 1 байт) представляет собой тип данных, любой элемент которого может принимать лишь два значения: True и False. При этом справедливы следующие условия:
False < True
Ord (False) = 0
Ord (True) = 1
Succ (False) = True
Pred (True) = False
В Turbo Pascal 7.0 добавлено еще три логических типа ByteBool (размер - 1 байт), WordBool (размер - 2 байта) и LongBool (размер - 4 байта). Они введены для унификации с другими языками программирования и со средой Windows. Отличие их от стандартного типа Boolean заключается в фактической величине параметра этого типа, соответствующей значению True. Для вех логических типов значению False соответствует число 0, записанное в соответствующее количество байтов. Значению же True для типа Boolean соответствует число 1, записанное в его байт, а для других типов значению True соответствует любое число, отличное от нуля (хотя функция Ord в этом случае дает значение 1).
3.2.3. Символьный тип
Стандартный символьный тип Char определяет полный набор ASCII-символов. Функция Ord от величины типа Char дает код соответствующего символа. Сравниваются величины символьного типа по своим кодам.
3.2.4. Перечисляемый тип
Перечисляемый тип не является стандартным и определяется набором идентификаторов, с которыми могут совпадать значения параметра. Список идентификаторов указывается в круглых скобках, идентификаторы разделяются запятыми:
type
<имя типа> = (<идентификатор 1, идентификатор 2, ... , идентификатор N>);)
Важно, в каком порядке перечислены идентификаторы при определении типа, т. к. первому идентификатору присваивается порядковый номер 0, второму - 1 и т. д. Один и тот же идентификатор можно использовать в определении только одного перечисляемого типа. Функция Ord от величины перечисляемого типа дает порядковый номер ее значения.
Пример. Перечисляемый тип.
type Operat = (Plus, Minus, Mult, Divide);
Логический тип является частным случаем перечисляемого типа:
type Boolean = (False, True);
3.2.5. Тип-диапазон
В любом порядковом типе можно выделить подмножество значений, определяемое минимальным и максимальным значением, в которое входят все значения исходного типа, находящиеся в этих границах, включая и сами границы. Такое подмножество определяет тип-диапазон. Тип-диапазон задается указанием минимального и максимального значений, разделенных двумя точками:
type
<имя типа> = <мин. значение> . . <макс. значение>;
Минимальное значение при определении такого типа не должно быть больше максимального.
Пример. Определение типов-диапазонов.
type
Dozen = 1..12; {числа от 1 до 12}
AddSub = Plus..Minus; {операции сложения и вычитания}
3.2.6. Вещественные типы
В отличие от стандарта языка Паскаль, где определен только один вещественный тип Real, в Turbo Pascal имеется пять стандартных вещественных типов: Real, Single, Double, Extended, Соmр. Характеристики этих типов см. в табл. 3. Таблица 3. Вещественные типы данных
Тип |
Диапазон |
Число значащих цифр |
Размер в байтах |
Real |
2.9*10-39..1.7*1038 |
11-12 |
6 |
Single |
1.5*10-45..3.4*1038 |
7-8 |
4 |
Double |
5.0*10-324.-1.7*10308 |
15-16 |
8 |
Extended |
3.4*10-4932..1.1*104932 |
19-20 |
10 |
Comp |
-263+1..263-1 |
19-20 |
8 |
Тип Comp фактически является типом целых чисел увеличенного диапазона, однако порядковым не считается.
Типы Single, Double, Extended и Comp можно использовать в программах только при наличии арифметического сопроцессора или при включенном эмуляторе сопроцессора (см. пп. 17.5.8 и 17.7.1).
|