Типы данных в Паскале можно разделить на скалярные и структурированные. Существует также возможность вводить пользовательские типы данных.
В скалярных типах данных можно выделить следующие группы.
Целочисленные типы данных занимают от 1 до 4 байт. Все они представлены в табл. 2.1.
Таблица 2.1Целочисленные типы данных
Тип
Диапазон
Размер в байтах
Byte
0..255
Word
0..65535
Integer
-32768..32767
Shortint
-128..127
Longint
-2147483648..2147483647
Пример описания переменных целочисленных типов:
Var
a, b: byte;
f: word;
Вещественные типы данных занимают от 4 до 10 байт. Они могут быть как с плавающей (например, -3.2Е-6, -.42Е+2), так и с фиксированной (например, 4.12, 6.05, -17.5489) точкой. Вещественные числа в формате с плавающей точкой представлены в экспоненциальной форме mE p, где m-мантисса (целое или дробное число с десятичной точкой), p- порядок (целое число). Для того чтобы перевести число в экспоненциальной форме к обычному представлению с фиксированной точкой, необходимо мантиссу умножить на 10 в степени порядка. Например:
-6.42Е+2=-6.42∙102=-642
-3.2Е-6=-3.2∙10-6=-0.0000032.
Все вещественные типы данных приведены в табл.2.2.
Таблица 2.2Вещественные типы данных
Тип
Диапазон
Мантисса
Размер (в байтах)
Real
2.9Е-39..1.7Е38
11-12
Single
1.5Е-45..3.4Е38
7-8
Double
5.0Е-324..1.7Е308
15-16
Extended
3.4Е-4932..1.1Е4932
19-20
Пример описания переменных вещественных типов:
var
a, b, c: real;
d, f: double;
k: single;
Символьный тип данных представляет собой любой символ, который может быть отображен на экране дисплея. Он занимает 1 байт и может быть описан с помощью служебного слова char, например:
var
a, b: char;
в тексте программы значения переменных и константы символьного типа должны быть заключены в апострофы: ′a′, ′b′, ′+′.
Логический (булевский) тип данных. Данные этого типа могут принимать одно из двух значений: true (истина) или false (ложь).
Например:
var a, b:boolean;
Кроме стандартных скалярных типов в Турбо Паскале можно вводить такие скалярные типы, как перечислимый и интервальный.
Перечислимый тип задается непосредственным перечислением значений, которые может принимать переменная данного типа, например:
var
a, c: (red, blue, green);
b: (dog, cat);
Можно сначала ввести перечислимый тип данных, а затем описать его переменные. Для создания нового типа используется служебное слово type:
type <имя_типа>=<определение_типа>;
например:
type
color=(red, blue, green);
var
a, b:color;
Интервальный тип данных позволяет задавать две константы, которые определяют границы изменения переменных данного типа. Значение первой константы должно быть меньше значения второй. Сами же они являются целочисленными или символьными, например:
var
a, b, c: -7..4;
x: ′a′..′c′;
Как и в случае перечислимого типа, можно предварительно ввести тип данных с помощью служебного слова type, а затем описывать переменные.
Например:
type
x=0..9;
var
a, b: x;
Каждая переменная интервального типа занимает 1 байт.
К структурированным типам данных относятся: массивы, строки, записи, файлы, множества.
Массив – совокупность данных одного и того же типа. Число элементов массива фиксируется при описании типа и в процессе выполнения программы не изменяется. Для доступа к элементу необходимо указать имя массива и его номер в квадратных скобках. Для описания массивов используется служебное слово array. Описание переменной данного типа имеет следующий вид:
<имя_переменной>: [i..i1, j..j1,…] of <тип_элементов>,
где i,i1-границы первого индекса массива, j, j1-границы второго индекса массива.
Например:
var
a: array [1..10] of integer;
Можно сначала определить тип данных массива. А затем описывать переменные этого типа, как и в случае со скалярными типами.
Строки – последовательность символов. При использовании в выражениях строка заключается в апострофы. Ее длина ограничена 255 символами. Для описания переменных строкового типа используется служебное слово string, например:
<имя_переменной>:string [n],
где n-длина строковой переменной; если n не указана, то длина строки равна 255символам.