Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Билет 20-25.docx
Скачиваний:
2
Добавлен:
01.03.2025
Размер:
2.12 Mб
Скачать

Билет 20 Объявление типов и использование имен типов для описания данных.

Язык ПАСКАЛЬ предлагает пользователю предопределенные типы данных: integer, real, boolean, char и др. В случае необходимости пользователь может создавать собственные типы данных, например перечисляемые или интервальные.

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

<Раздел описания типов> ::= type <Описание типа>; { <Описание типа>;}

<Описание типа> ::= <Идентификатор> = <Тип>

<Тип> ::= <Идентификатор> | <Перечисляемый mun> | <Интервальный тип> | <Тип-массив> | <Тип-записъ> | <Тип-множество> | <Файловый тип> | <Ссылочный тип>

<Перечисляемый тип> ::= (<Идентификатор> {, <Идентификатор>})

<Интервальный тип> ::= <Константа>. .<Константа>

Примеры:

1) type Т1 = (А, В, С, D, Е, F, G, Н);

Т2 = В..F;

ТЗ = С..Н;

2) type Pozitiv = 1..MaxInt;

Natural = 0..MaxInt;

Negativ = -Maxlnt..-1;

3) type Abatere = -10...+10;

Litera = 'A'.. 'Z';

Cifra = '0'.. '9';

Классификация типов данных языка ПАСКАЛЬ представлена на рис. 2.И Изученные ранее типы данных указаны на темном фоне. В некоторых конструкциях языка ПАСКАЛЬ необходимо, чтобы переменные и константы принадлежали к идентичным или совместимым типам.

Два типа являются идентичными, если они задаются одним и, тем же именем.

Например, type Т4 = integer;

Т5 = integer;

Здесь типы integer, Т4, Т5 являются идентичными. Два типа могут быть идентичными и тогда, когда они задаются различными именами, при условии, что эти имена эквивалентны по свойству транзитивности

Например,

type Т6 = real;

Т7 = Т6;

Т8 = Т7;

Здесь типы real, Тб, Т7 и Т8 являются идентичными.

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

1) рассматриваемые типы идентичны;

2) один тип является интервальным типом второго;

3) оба типа являются интервальными, с одним и тем же базовым типом.

Например, при следующем объявлении:

type Zi = (L, Ma, Mi, J, V, S, D);

ZiDeLucru = (L, Ma, Mi, J, V);

ZiDeOdihna - (S, D);

Culoare = (Galben, Verde, Albastru, Violet);

типы Zi, ZiDeLucru, ZiDeOdihna являются совместимыми. Типы Zi и Culoare не совместимы. Отсюда следует, что допустимы следующие операции отношения:

L < D Mi <> D Verde <> Violet

и т.д., а операции типа

L < Violet Verde = V S <> Albastru

запрещены.

Кроме типов данных, определяемых пользователем явно с помощью ключевого слова type, в программе могут быть описаны анонимные типы (типы без имени).

Анонимный тип определяется неявно при описании переменных.

Пример:

var i : 1..20;

s : (Alfa, Beta, Gama, Delta);

t : Alfa..Gama;

Отметим, что интервальный тип 1..20, перечисляемый тип (Alfa, Beta, Gama, Delta) и интервальный тип Alfa. .Gama не имеют собственных имен.

Как правило, анонимные типы используются в программах с небольшим количеством переменных.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]