В математике  принято классифицировать переменные в соответствии снекоторыми важными характеристиками. Производится строгое разграничение между вещественными, комплексными и логическими переменными, между переменными, представляющими отдельные значения и множество значений и так далее.

   При обработке данных на ЭВМ такая классификация еще более важна. В любом алгоритмическом языке каждая константа, переменная,  выражение или функция бывают определенного типа.

   В языке ПАСКАЛЬ существует правило:  тип явно задается в описании переменной или функции,  которое предшествует их использованию.  Концепция типа языка ПАСКАЛЬ имеет следующие основные свойства:

   - любой тип данных определяет множество значений,  к которому  принадлежит константа, которые может принимать переменная или выражение, или вырабатывать операция или функция;

   - тип значения,  задаваемого константой, переменной или выражением, можно определить по их виду или описанию;

   - каждая операция или функция требует аргументов фиксированного типа и выдает результат фиксированного типа.

   Отсюда следует, что транслятор может использовать информацию о типах для проверки вычислимости и правильности различных конструкций.

   Тип определяет:

   - возможные значения переменных, констант, функций, выражений, принадлежащих к данному типу;

   - внутреннюю форму представления данных в ЭВМ;

   - операции и  функции,   которые  могут выполняться над величинами, принадлежащими к данному типу.

   Обязательное описание типа приводит к избыточности в тексте программ,  но такая избыточность является важным вспомогательным средством разработки программ и рассматривается как необходимое  свойство современных алгоритмических языков высокого уровня. В языке ПАСКАЛЬ существуют скалярные и структурированные типы данных.

   К cкалярным типам относятся стандартные типы и типы, определяемые пользователем.

   Стандартные типы  включают  целые,   действительные,   символьный, логические и адресный типы. Типы, определяемые пользователем, - перечисляемый и интервальный.

   Структурированные типы имеют четыре разновидности:  массивы,  множества, записи и файлы.

   Кроме перечисленных,  TURBO PASCAL  включает еще два типа - процедурный и объектный.

   Из группы скалярных типов можно выделить  порядковые типы, которые характеризуются следующими свойствами:

   - все возможные значения порядкового типа представляют собой ограниченное упорядоченное множество;

   - к любому порядковому типу может быть применена стандартная функция Ord, которая в качестве результата возвращает порядковый номер конкретного значения в данном типе;

   - к любому порядковому типу могут быть применены стандартные функции Pred и Succ, которые возвращают предыдущее и последующее значения соответственно;

   - к любому порядковому типу могут быть применены стандартные функции Low и High,  которые возвращают наименьшее и наибольшее значения

величин данного типа.

   В языке ПАСКАЛЬ введены понятия эквивалентности и совместимости типов.

   Два типа Т1 и Т2 являются эквивалентными (идентичными),  если выполняется одно из двух условий:

   - Т1 и Т2 представляют собой одно и то же имя типа;

   - тип Т2 описан  с использованием типа Т1 с помощью равенства или последовательности равенств. Например:

   type

      T1 = Integer;

      T2 = T1;

      T3 = T2;

 

   Менее строгие ограничения определены совместимостью типов. Например, типы являются совместимыми, если:

   - они эквивалентны;

   - являются оба либо целыми, либо действительными;

   - один тип - интервальный, другой - его базовый;

   - оба интервальные с общим базовым;

   один тип - строковый, другой - символьный.

   В ТУРБО ПАСКАЛЬ ограничения на совместимость типов можно обойти с помощью приведения  типов.  Приведение типов позволяет рассматривать одну и ту же величину в памяти ЭВМ как принадлежащую разным  типам. Для этого используется конструкция

   Имя_Типа(переменная или значение).

 

   Напрмер,

 

    Integer('Z')

 

представляет собой значение кода символа 'Z' в двухбайтном представлении целого числа, а

 

    Byte(534)

 

даст значение 22, поскольку целое число 534 имеет тип Word и занимает два байта, а тип Byte занимает один байт, и в процессе приведения старший байт будет отброшен.