Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЛЕКЦИИ САОД.docx
Скачиваний:
3
Добавлен:
01.03.2025
Размер:
406 Кб
Скачать
☆

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

Операции над множествами позволяют создавать из одних множеств другие. То есть это еще один способ задания множеств(кроме 1-го и 2-го)

Известны 3(три) основных операции над множествами

1.Объединением или суммой двух данных множеств А и В называется множество С=А∪В, каждый элемент которого принадлежит хотя бы одному из данных множеств А или В.

2.Разностью двух данных множеств А и В называется множество С=А\В, которое содержит все элементы А, за исключением содержащихся в множестве В.

3.Пересечением двух данных множеств А и В называется множество С= А∩В, каждый элемент которого принадлежит обоим данным множествам.

Пример: Пусть A={1,3,5,15}, B={2,3,5.7}, тогда С1=А∪В={1,2,3,5,7,15};

C2=A\B={1,15};

C3=А∩В={3,5}

3.3.1.3 Множественный тип и его свойства

Множественный тип в языке Pascalне является стандартным и вводится с помощью зарезервированного слова SET. Описание множественного типа имеет такой вид(формат)

Type

T=Set Of TO;

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

Опишем некоторую переменную Х множественного типа

Var

x:T;

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

Примеры:

1.Если базовый тип ТО не содержит ни одного элемента, то из такого материала можно построить всего лишь одно пустое множество Ø;

2.Если базовый тип ТО содержит 1(один) элемент, например Х1, то возможно построение двух множеств–Dи {X1};

3.Если базовый тип ТО содержит 2(два) элемента, например Х1 и Х2, то возможно построение 4(четырех) множеств – Ø , {Х1},{Х2}, { Х1, Х2} и т.д.

Следует отметить, что в общем случае, если общее число элементов в базовом множестве ТО равно Card(TO), то количество различных множеств, которые можно построить из элементов множества типа ТО определяется формулой

Card(T)=2Card(TO)

Ограничения на использование множеств в языке Паскаль:

1)Не могут быть произвольными элементы базового множестваz:TO

2)Базовым типом ТО может быть только порядковый тип; благодаря этому линейная упорядоченность как элементов базового множества, так и элементов всех множеств типа Т обеспечивается на основе их порядковых номеров Ord(z);

3)Количество возможных значений базового типа должно удовлетворять условию Card(TO)≤256, иначе говоря, мощность базового множества не может превышать 256.

4)Порядковые номера элементов базового множества должны удовлетворять условию 0≤Оrd(z) ≤255

Таким образом, из всех стандартных типов базовыми для множеств могут быть только типы Byte, Char, Boolean, значения которых помещаются в один байт. Только их свойства изначально удовлетворяют указанным выше ограничениям. Попытки использовать другие типы приводят к появлению сообщений, извещающих об ошибках.

Базовыми для множеств могут быть использованы также нестандартные типы: интервальный и перечисляемый. Естественно, для этого их нужно описать таким образом, чтобы удовлетворить указанные ранее ограничения. В частности, базовым типом для интервального типа можно выбрать только Byteили Char, а количество значений 'перечисляемого типа не должно превышать 256.

Примеры одноступенчатого описания множественных типов

Type

Simbol= Set Of Char; {в базовое множество входят все ASCII-символы}

Litera=Set Of 'а' .. 'z '; {базовым множеством является отрезок типа Char}

Number=Set Of Byte; {вбазовое множество входят все числа от 0 до 255}

Diapason=Set Of 1..100; {базовым множеством является отрезок типа Byte}

Name=Set Of (Ivanov, Petrov, Sidorov); {в базовое множество входят все указанные константы перечисляемого типа}

Возможно двухступенчатое описание множественных типов

Type

P1= ' а ' .. ' z ';

Litera=Set Of P1;

P2=1..100;

Diapazon=Set Of P2;

P3=(Ivanov, Petrov, Sidorov);

Name= Set Of P3;

Еще раз напомню о роли базовых типов.

Они определяют исходное базовое множество для соответствующего множественного типа. Так, например, интервальный базовый тип 1..100 множественного числа Diapazon указывает на то, что элементами любых множеств типа Diapazon могут быть только целые числа в пределах от 0 до 100.