Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Информатика - экзамен.docx
Скачиваний:
8
Добавлен:
16.04.2019
Размер:
59.07 Кб
Скачать

Раздел типов

В программе наряду со встроенными типами можно вводить и другие типы значений. В отличие от встроенных каждый такой тип должен быть явно задан. Ему дается имя, после чего для указания требуемого типа достаточно указать его имя.

<раздел типов>::=<пусто>| type <описание типа>{;<описание типа>};

<описание типа>::=<имя типа>=<тип>

<тип>::=<имя типа>|<задание типа>

В алгоритмическом языке с каждым типом связаны:

  • структура программного элемента, т.е. интерпретация памяти;

  • множество допустимых значений;

  • совокупность возможных операций с ним.

Задавая тип, нельзя задать операции над его данными.

Ранее были рассмотрены стандартные типы значений, которые определены самим языком и не должны вводиться в программе. Програм­мист может вводить в употребление и другие, удобные для него типы значений. Простейшие из них – перечислимые и ограниченные типы. Оба эти класса относятся к скалярным типам, т.е. каждое их значение состоит из единственного данного (является тривиальной структурой).

14.Классификация типов значений в Турбо Паскале. Стандартные и упорядоченные типы.

Все имеющиеся в Паскале типы значений, или просто типы, можно разбить на две группы: основные (простые) и производные. Основные типы являются элементарными и каждое значение этих типов состоит из единственного данного, т.е. является тривиальной структурой данных. Все основные типы данных, кроме ссылочного типа, принято называть скалярными. Скалярные типы либо относятся к стандартным, которые зафиксированы в языке, либо определяются программистом с помощью соответствующих заданий типов. Поскольку для каждого определяемого типа в программе должно содержаться явное его задание (описание), то такие типы иначе называют описанными скалярными типами. Стандартные типы в программе описываться не должны.

В языке OBJECT PASCAL имеется 7 групп основных типов:

  • целые;

  • логические (булевы);

  • символьные;

  • перечни;

  • интервальные (диапазоны);

  • вещественные;

  • дата-время.

Среди простых типов перечень и интервальный тип определяют­ся программистом, а остальные – встроенные. Первые пять групп типов относятся к порядковым.

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

Операции

Выполняемые действия

Low(T)

Минимальное значение типа T

High(T)

Максимальное значение типа T

Ord(X)

Порядковый номер значения X

Pred(X)

Возвращает предыдущее значение для X

Succ(X)

Возвращает следующее значение для X

Dec(X)

Уменьшает X на единицу

Inc(X)

Увеличивает X на единицу

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

Следует подчеркнуть, что любой описанный тип, т.е. тип, вво­иый в употребление программистом, определяет лишь множество зна­еий этого типа – набор же допустимых операций над ними и правила упорядочения зафиксированы в языке и не могут быть изменены по желанию программиста.

К структурированным производным типам относятся:

  • множества;

  • массивы;

  • записи;

  • файлы;

  • объектный тип (тип класса);

  • тип ссылки на класс.

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

Для достижения единообразия и большего удобства, за стандарт­ными типами (не требующими явного описания в программе) закреплены стандартные имена. В стандарте Паскаля предусмотрено четыре стандар­тных типа значений: целый, вещественный, символьный и логический.