Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Доп.мат-лы студентам к лекциям по ИиП.doc
Скачиваний:
2
Добавлен:
06.12.2018
Размер:
193.54 Кб
Скачать

2. Множества и выражения над ними.

Множество – это совокупность связанных между собой

однотипных объектов (элементов множества),

рассматриваемых как единое целое.

При задании множества необходимо определить имя множественного типа, допустимую совокупность элементов и тип этих элементов.

Объявление типа:

имя

TYPE < множественного > =SET OF <простой тип>;

Типа

Указываемый в описании «простой тип» иначе называют базовым, и ему должны принадлежать элементы множества. Обычно это интервальный или перечисляемый типы.

В отличии от математики, количество элементов в «паскалевском» множестве ограничено и может колебаться от 0 до 255.

Пример:

TYPE GRUP=(EIS_111, EIS_112, EIS_211, EIS_212, EIS_311,

EIS_312, EIS_411, EIS_412, EIS_511, EIS_512);

GR=SET OF GRUP; {тип множества групп

специальности }

VAR SPEC, KRS1, KRS2, KRS3, KRS13, KRS4, KRS5, KRS45: GR;

{здесь значением каждой переменной может

быть произвольная совокупность названий

групп}

EIS: GRUP; {здесь описана простая переменная

перечисляемого типа, значением которой может

быть только одно из приведенных в GRUP

название группы}

ALF1, ALF2, ALF3, ALF4: SET OF ’A’..’Z’; {другой вариант

объявления переменных множественного типа}

FL: BOOLEN;

CHIS: SET OF INTEGER;

Можно без TYPE:

VAR EIS: SET OF (EIS_111, EIS_112, EIS_211, EIS_212, EIS_311,

EIS_312, EIS_411, EIS_412, EIS_511, EIS_512);

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

KRS1:=[ EIS_111, EIS_112];

KRS2:=[ EIS_211, EIS_212];

ALF1:=[ ’A’..’F’];

ALF2:=[ ’I’,’J’,’K’, ’X’,’Y’,’Z’];

ALF3:=[’D’..’F’, ’P’..’Z’];

KRS13:=[ EIS_111, EIS_112, EIS_211, EIS_212, EIS_311, EIS_312];

KRS45:=[ EIS_411, EIS_412, EIS_511, EIS_512];

CHIS:=[222,333,444];

После знака операции присваивания приводится т.н. конструктор множества, в котором определяется список спецификаций элементов.

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

В отличии от этого:

EIS:= EIS_111; { значение получила простая переменная

перечисляемого типа. Оно может быть только

одно!}

Константы – множества.

Константа–множество – это один или последовательность

элементов через запятую, заключенные в квадратные

скобки.

Элементами таких констант могут быть:

- константы того же типа, что и базовый;

- константы интервального типа (диапазона);

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

- пустой список значений;

- имя переменной с типом, совместимым с базовым.

TYPE ALF=SET OF ’A’..’Z’;

MES=SET OF 1..12;

CONST INDX: ALF=[’I’,’J’,’K’,’L’,’M’];

GLASN: ALF=[’A’,’E’,’I’,’O’,’U’,’Y’];

OTREZ: ALF=[’A’..’E’,’O’..’Z’];

LETO: MES=[6..8];

OTPUSK: MES=[];

Можно без TYPE:

CONST INDX: SET OF CHAR=[’I’..’M’];

Замечание: в множествах порядок перечисления элементов

несущественен. Оно лишь фиксирует наличие или

отсутствие элемента. Поэтому допустимо:

OTREZ: ALF=[’O’..’Z’, ’A’..’E’];

Константы–множества имеют постоянные, неизменные совокупности значений до конца выполнения программы, в которой они определены.