Типы данных языка Pascal
Компиляторы языка Pascal требуют, чтобы сведения об объеме памяти, необходимой для работы программы, были предоставлены до начала ее работы. Для этого в разделе описания переменных (var) нужно перечислить все переменные, используемые в программе. Кроме того, необходимо также сообщить компилятору, сколько памяти каждая из этих переменных будет занимать. А еще было бы неплохо заранее условиться о различных операциях, применимых к тем или иным переменным...
Все это можно сообщить программе, просто указав тип будущей переменной. Имея информацию о типе переменной, компилятор "понимает", сколько байт необходимо отвести под нее, какие действия с ней можно производить и в каких конструкциях она может участвовать.
Для удобства программистов в языке Pascal существует множество стандартных типов данных и плюс к тому возможность создавать новые типы.
Конструируя новые типы данных на основе уже имеющихся (стандартных или опять-таки определенных самим программистом), нужно помнить, что любое здание должно строиться на хорошем фундаменте. Поэтому сейчас мы и поговорим об этом "фундаменте".
На основании базовых типов данных строятся все остальные типы языка Pascal, которые так и называются: конструируемые.
Разделение на базовые и конструируемые типы данных в языке Pascal показано в таблице:
Арифметические типы данных | |||||
Целые | Вещественные | ||||
Логический boolean | Символьный (литерный) char | shortint byte integer word longint | real single double extended comp | Нетипизированный указатель pointer | |
Перечисляемый week = (su, mo, tu, we, th, fr,sa); | Типизированный указатель ^<тип> | Массив array | |||
Строка string | |||||
Запись record | |||||
Интервал (диапазон) budni = mo..fr; | Файл text file | ||||
Процедурный | |||||
Объектный1) | |||||
Типы данных, конструируемые программистом |
Типы данных, конструируемые программистом, описываются в разделе type по следующему шаблону:
type <имя_типа> = <описание_типа>;
Например:
type lat_bukvy = 'a'..'z','A'..'Z';
Базовые типы данных являются стандартными, поэтому нет нужды описывать их в разделе type. Однако при желании это тоже можно сделать, например, дав длинным определениям короткие имена. Скажем, введя новый тип данных
type int = integer;
можно немного сократить текст программы.
Стандартные конструируемые типы также можно не описывать в разделе type. Однако в некоторых случаях это все равно приходится делать из-за требований синтаксиса. Например, в списке параметров процедур или функций конструкторы типов использовать нельзя (см. лекцию 8).