Выражения с множествами

Множества

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

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

Область значений переменных типа множество — набор всевозможных подмножеств, составленных из элементов базового типа. Если базовый тип принимает N значений, то тип множество для него будет иметь Выражения с множествами - student2.ru вариантов различных значений (порядок элементов в подмножествах не учитывается).

Формат описания:

1-ый способ:

Type

имя_типа_множество= set of базовый_тип;

Var

имя_множества:имя_типа_множество;

2-ой способ:

Var

имя_множества: set of базовый_тип;

Пример 7.1 ( описания множеств ):

Type

Chislo= set of 1..31;

LatBold= set of ‘A’ ..’Z’;

Col= set of ( Red,Green, Blue );

Day=( Mon, Tues, Wed, Thur, Fri, Sat, Sun );

WorkDay= set of Mon ..Fri;

Var

Ch1, Ch2:Chislo;

LatB1:LatBold;

C1, C2, C3:Col;

WD1, WD2, WD3, WD4:WorkDay;

KirB: set of ‘А’..’Я’;

Выражения с множествами

Значения типа множество могут быть вычислены из других значений типа множество с помощью выражений и присвоены переменным с помощью оператора присваивания. Множественные выражения состоят из операндов множественного типа и операций над множествами.

Операнды множественного типа:

- переменные типа множество;

- множественные конструкции (множественные константы).

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

Например,

[ 1, 2, 5, 17 ]

[ 1..50 ]

[ 1..5, 10..100 ]

[ x+y..2*x+3*y ]

[ ‘P’, ‘a’, ‘s’, ‘c’, ‘a’, ‘l’ ]

[ ‘A’..’Z’ ]

[ ] — пустое множество

Над множествами определены следующие операции согласно приоритету:

1) * (пересечение: Выражения с множествами - student2.ru );

2) + (объединение: Выражения с множествами - student2.ru );

– (относительное дополнение — разность множеств: \ );

3) операции отношения:

= (проверка равенства множеств);

<> (проверка неравенства множеств);

<= или >= (проверка включения одного множества в другое);

in (проверка принадлежности элемента множеству).

Примеры 7.2 ( операции над множествами ):

A B Операция Результат
[ 1, 2, 3 ] [ 2, 3, 4 ] A*B [ 2, 3 ]
A B Операция Результат
[ 1, 2, 3 ] [ 2, 3, 4 ] A+B [ 1, 2, 3, 4 ]
A B Операция Результат
[ 1, 2, 3 ] [ 2, 3, 4 ] A-B [ 1 ]
A B Операция Результат
[ 1, 2, 3 ] [ 2, 3, 4 ] A=B False
[ 1, 2, 3 ] [ 1, 2, 3 ] A=B True
[ ’a’..’z’ ] [ ’a’..’z’ ] A=B True
[ ’a’..’z’ ] [ ’b’..’z’ ] A=B False
A B Операция Результат
[ 1, 2, 3 ] [ 2, 3, 4 ] A<>B True
[ 1, 2, 3 ] [ 1, 2, 3 ] A<>B False
[ ’a’..’z’ ] [ ’a’..’z’ ] A<>B False
[ ’a’..’z’ ] [ ’b’..’z’ ] A<>B True
A B Операция Результат
[ 1, 2, 3, 4 ] [ 2, 3, 4 ] A>=B True
[ 1, 2, 3 ] [ 2, 3, 4 ] A>=B False
A B Операция Результат
[ 2, 3, 4 ] [ 1, 2, 3, 4 ] A<=B True
[ 2, 3, 4 ] [ 1, 2, 3 ] A<=B False
N A Операция Результат
[ 2, 3, 4 ] N in A True
[ 2, 3, 4 ] N in A False
’d’ [ ’b’..’z’ ] N in A True
’a’ [ ’b’..’z’ ] N in A False

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

Наши рекомендации