Множественный тип данных строится на основе некоторого базового типа, в качестве которого может быть любой простой тип, кроме действительного и неограниченного целого.
Множеством называется совокупность объектов, обладающих некоторым общим свойством.
Множества могут состоять из любого числа объектов (элементов), но могут и не содержать элементов.
В математике под множеством понимается некоторый набор элементов. Например, множество плоских геометрических фигур:
Все элементы одного множества различны и неупорядочены. Элементы множества не могут повторяться.
Пример. [круг, ромб, круг] – неверная запись множества.
[круг, ромб, квадрат]=[ромб, круг, квадрат] – одинаковы и равны между собой.
Множество в языке программирования Паскаль – это ограниченный, неупорядоченный набор различных элементов одинакового типа.
Элементы множества заключаются в […].
Множество может не содержать ни одного элемента. В этом случае оно называется пустым [ ].
Если множества используются в программе, то они должны быть описаны либо с помощью раздела Type, либо непосредственно в разделе переменных.
Type имя_типа = set of t;
базовый тип элементов множества (любой простой кроме real и integer)
Var имя_множества: имя_типа;
Дело вот в чём. Размерность множества, то есть допустимое количество элементов множества обычно небольшое. Для большинства компьютеров оно не превышает 256 (то есть от 0 до 255). Поэтому объявление
Set of Integer является недопустимым.
Вместе с тем запись Type M = Set of Boolean является корректной, поскольку объявляется множество, содержащее два элемента со значениями True и False.
Таким образом, указанным ограничениям на тип элемента удовлетворяют базовые стандартные типы:
Byte,
Char,
перечислимые типы,
ограниченные типы.
Пример. Type Letters = Set of ‘A’..’Z’;
Holidays = Set of 1..31;
U = Set of Char;
I = Set of Byte;
Пример. Type M = Set of (A, B, C, D);
Var G, F: M;
Здесь задан тип множества М. В разделе переменных указано, что переменные имеют тип М, то есть могут принимать значения любых из перечисленных букв, например:
G := [A, B, D];
F := [C, A, B];
Пример. Type Town = (Moscow, Kiev, Yalta);
M = Set of Town;
Var P1, P2 : M;
P3 : Set of ‘A’..’Z’;
P4, P5 : Set of 0..9;
Переменная Р1 множественного типа М может принимать следующие значения:
В общем случае, если базовое множество содержит N элементов, производный множественный тип определяет 2N подмножеств. Смотрите пример: 3 элемента, значит, 23 = 8 подмножеств.
Другой пример описания:
Type MNOG = Set of 1980..2000;
Var M1, M2: MNOG;
В программе элементами множеств М1 и М2 могут быть любые целые числа от 1980 до 2000, например:
M1:= [1988, 1995, 1981];
M2:= [1980, 1981, 1982, 1983];
Приведём примеры описания множеств непосредственно в разделе переменных:
Var M1, M2: Set of 1980..2000;
Var MS: Set of Char;
Здесь элементами являются символьные константы, например:
MS:= [‘A’, ‘N’, ‘R’];
Количество элементов, входящих в множество, может быть ограничено. Оно зависит от компьютера и версии языка Паскаль.