Выше было отмечено, что любые данные в языке Turbo Pascal характеризуется своими типами данных. Turbo Pascal характеризуется разветвленной структурой членов данных, которая приведена на следующем рисунке:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
типы |
|
|
|
Простые |
|
|
Порядковые |
|
|
Целый |
||||
|
|
|
|
|
|
|
|
||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Вещественные |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
Логическ |
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Структуирова |
|
|
|
|
|
|
|
Символь |
||
|
|
|
|
|
|
|
Массивы |
|
|
|
|
||||
|
|
|
|
|
нные |
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Перечис |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Записи |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Указатели |
|
|
|
|
|
|
|
Т |
||
|
|
|
|
|
|
|
Множества |
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
диапоз |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Строки |
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
Файлы |
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Процедурные |
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Объекты |
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Рис. 4. 2. 9. Структура типов данных.
Кроме того, как было отмечено, в языке Turbo Pascal предусмотрен механизм создания новых типов данных, благодаря чему общее количество типов, используемых в программах (описатель Type) может быть сколь угодно большим.
Следует иметь в виду, что в Turbo Pascal имеются дополнительные членовые типы для целочисленных и вещественных типов. Так для целочисленных типов, помимо типа Integer имеются и ряд других (см. табл. 4. 2.1), где имеется, например, тип Long Int , который допускает значения в диапазоне от –2147483648 до
2147483647.
Для содержания переменной типа LongInt в памяти выделяется 32 бита, в отличие от 16 битов, выделяемых для переменных типа Integer.
Таким образом, в таблице 4.2.1 указан диапазон допустимых значений для каждого из типов. Два целочисленных типа, Byte и ShortInt, используют только по 8 битов для каждого из своих значений (отличаются только диапазоном). Тип данных Word допускает только положительные целочисленные значение, поэтому его наибольшее допустимое значение вдвое превышает такое же значение для типа Integer. Все операции Turbo Pascal, применяемые к данным типа Integer, могут использоваться и с данными типов, перечисляемых в таблице 4.2.1.
ЦЕЛЫЕ ТИПЫ ДАННЫХ |
Таблица 4.2.1. |
||
|
|
|
|
ТИП |
|
ДИАПОЗОН |
|
ЗНАЧЕНИЙ |
|
|
|
|
|
|
|
Integer |
|
-32768.. 32767 |
|
ShotInt |
|
-128.. 127 |
|
LongInt |
|
-2147483648.. |
|
2147483647 |
|
|
|
|
|
|
|
Byte |
0.. 255 |
|
|
Word |
0.. 65535 |
|
|
Turbo Pascal также предоставляет несколько дополнительных типов данных для вещественных чисел. Эти типы перечислены в таблице 4.2.2, вместе с диапазоном допустимых значений, а также числом значащих разрядов для каждого из типов. Все операторы Turbo Pascal, применяемые к данным типа Real, могут использоваться и с данными, перечисленными в таблице 4.2.2.
ВЕЩЕСТВЕННЫЕ ТИПЫ ДАННЫХ Таблица 4.2.2
ТИП |
|
ДИАПОЗОН ЗНАЧЕНИЙ |
|
число |
|
||||
значащих |
|
|
|
|
|
|
|
|
цифр |
мантиссы Real |
|
2.9Е |
- 39.. 1.7Е38 |
|
1112 |
|
|
|
|
Single |
|
1.5Е45.. 3.4Е38 |
|
7- 8 |
Double |
|
5.0Е324.. 1.7Е308 |
|
1516 |
|
|
|||
Extended |
|
1.9Е4951.. 1.1Е4932 |
19- |
|
23 |
|
|
|
|
Простые типы данных вместе со строковыми были рассмотрены выше. В данном .разделе будут рассмотрены структуированные типы данных и составление программ с их использованием.
Структуированные типы данных
Любой из структуированных типов (в языке Turbo Pascal их четыре: массивы, записи, множества и файлы) характеризуется множественностью образующих этот тип элементов, т. е. переменная …. Структуированного типа всегда имеет несколько компонентов. Каждый компонент, в свою очередь, может принадлежать структуированному типу, что позволяет говорить о возможной вложенности типов. В языке Turbo Pascal допускается произвольная глубина
вложенности, однако суммарная длина любого из них во внутреннем представлении не должна превышать 65520 байт.
В целях совместимости со стандартным языком Pascal в Turbo Pascal разрешается перед описанием структуированного типа ставить служебное (зарезервированное) слов PACKED, предписывающее комнилятору, по возможности, экономить память, отводимую под объекты структуированного типа; но комнилятор фактически игнорирует его указание: «упаковка» данных в языке Turbo Pascal осуществляется автоматически везде, где это возможно.
Массивы
Массивы в языке Turbo Pascal во многом схожи с аналогичными видами данных в других языках программирования, отличительная особенность массивов заключается в том, их компонентысуть данные одного типа (возможно структуированного), эти компоненты можно легко упорядочить и обеспечить доступ к любому из них простым указанием порядкового номера его индекса, например:
Fyne did = array [1…9] of char;
Var
a: dig; Begin
A[3] = exp(3+5)/2; END.
Следует иметь в виду, что если массив не передаѐтся в процедуру или функцию, то можно просто (в отличие от данного примера):
VAR
a: array [1….9] of char
Выше было приведено множество примеров программ с использованием одномерных и двумерных массивов.
ЗАПИСИ
Запись, как и массив - сложная переменная с несколькими фиксированными компонентами, являющиеся родственными данными.
Однако, запись в отличие от массива, может содержать элементы, относящиеся к различным типам. Мы можем использовать запись для хранения разнотиповой (разнородный) информации, например, о человеке: его имя, фамилия, адрес, год рождения, пол и т.д. Мы не смогли бы завести эту информацию в массив, поскольку имя и адрес это строки, пол - символ, а год рождения - число.
Таким образом, такую информацию можно оформить в виде записи. При этом, элементы (компоненты) записи называются полями. При этом поля в одной и той же записи могут быть различного типа и при объявлении должны быть указаны имя и тип каждого поля.
В тоже время, следует иметь в виду, что если элементы (поля) записи одного и того же типа, то можно использовать для их хранения и массивы.
Таким образом записьструктура данных (сложный тип данных), состоящая из фиксированного числа (набора) компонентов, называемых полями записи.