Структурированные данные – множественные типы

Множество – это некоторый ограниченный неупорядоченный набор различных элементов одинакового типа. Можно говорить, например, о множест¬ве фигур на плоскости (прямоугольник, круг, ромб, квадрат), о множестве радиодеталей, транспортных средств, станков и т. д.

В Турбо Паскале существует множественный тип для ввода множеств и организации операций над множествами. Множественный тип представляет собой некоторую совокупность элементов, которая является подмножеством допустимых значений определенного порядкового типа, именуемого базовым. Множественный тип описывает наборы однотипных логически связанных друг с другом объектов. Характер связей между объектами лишь подразумевается программистом и никак не контролируется Турбо Паскалем. Количество элементов, входящих в множество, может меняться в пределах от 0 до 256. Множество, не содержащее элементов, называется пустым. Именно непостоянством количества своих элементов множества отличаются от массивов и записей.

Множества должны быть объявлены либо в разделе переменных var, либо с использованием раздела типов type. Описание типа множества имеет вид:               <имя типа> = set of <базовый тип>
Здесь <имя типа> – правильный идентификатор; set, of – зарезервирован¬ные слова (множество, из); <базовый тип> – базовый тип элементов множества, в качестве которого может использоваться любой порядковый тип, кроме word, integer, longint.

Синтаксическая диаграмма:

Пример:
var
year : set of 198..200;
c : set of char;

Year – множество, которое может состоять из элементов диапазона 198 … 200, с – множество всех символов.

Конструкторы множеств

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

Описанием элемента могут быть константы или выражения базового типа, а также – тип–диапазон того же базового типа вида min..max, где значения выражений min и max представляют собой нижнюю и верхнюю границы группы элементов. Если нижняя граница больше верхней границы (т. е. min > max), то никакой элемент не описывается, то есть описывается пустое множество.

Все выражения должны относиться к одному порядковому типу, представляющему собой базовый тип для множественного типа данного конструктора. Конструктор множества [ ] обозначает пустое множество для любого множественного типа (рис. 21).

Примеры конструкторов множеств:
[13]
[ i + j , i – j ]
[ ‘0’..’9']

Операции над множествами

Если Х – переменная–множество, а Е – множественное выражение, то присваивание:
Х := Е
допустимо только в том случае, если все элементы Е относятся к базовому типу Х.
К любым объектам со структурой множества применимы операции: объединение, пересечение, разность. Если предположить, что А и В – выражения одного типа, то:
А + В    – множество из элементов А и В (объединение);
А * В    – множество общих для А и В элементов (пересечение);
А – В    – множество элементов А, не входящих в В (разность).

К множественным операндам применимы пять операций отношения. Предположим, А и В – множественные выражения одного типа, а е – порядковое выражение базового типа.

е in A    –    вхождение в множество; результат true, если е элемент А,         иначе – false;
А = В    –    равенство множеств;
А <>В    –    неравенство множеств;
А <= В    –    включение; результат true, если А  подмножество В;
А >= В    –    включение; результат true, если В подмножество А.

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

Ваш отзыв

Повторите код: