Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
УМК ОАиП.docx
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
1.14 Mб
Скачать

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

Над множествами определены операции: пересечение, объединение, разность, сравнение, а также операция принад­лежности множеству.

Первые три операции (пересечение, объединение, раз­ность) создают производные множества.

Операции сравнения - это операции отношения, они двух­местные и возвращают логическое значение (False или True). Операнды должны быть везде сопоставимы, то есть по­строены на одном базовом типе.

3.1. Пересечение двух множеств

Результатом операции пересечения двух множеств А*В будет множество С, состоящее только из тех элементов, ко­торые принадлежат как множеству А, так и множеству В.

3.2. Объединение двух множеств

Результатом операции объединения двух множеств А+В будет множество С, включающее как все элементы множест­ва^, так и все элементы множества В.

3.3. Разность двух множеств

Результатом операции разности двух множеств А - В бу­дет множество С, состоящее только из тех элементов множе­ства А, которые не входят в множество В.

3.4. Операции сравнения

= проверка эквивалентности, возвращает True, если оба множества эквивалентны.

<> проверка неэквивалентности, возвращает True, если оба множества неэквивалентны.

<= проверка вхождения, результат операции True, если первое множество включено во второе.

>= проверка вхождения, результат операции True, если второе множество включено в первое.

3.5. Операции включения

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

Пример 2

a) объявим символьный множественный тип:

Type mn = Set Of Char ;

Var с, a, b : mn;

a: = ['R0', 'X', 'V, 'Z'];

b : = ['C, 'Y', 'A', 'B', 'Z'];

Тогда рассмотрим элементы результирующего множест­ва С, если будут использованы операции над множествами:

с : = а * b; {Множество с = ['Y', 'Z']};

с : = а + b; {Множество с = ['R', 'X', 'Y', 'Z', 'А', 'В', 'С']};

'X' In mn; {результат операции дает True}

[ ] <= а; {результат операции дает True}

а = b; {результат операции дает False}

b) пусть а : = [' 0 ',' 2 ',' 3 ',' 4 ']; b: = ['4', '2', '3', '0'];

а = b; {результат операции дает True}

c) объявим множественный тип: Type num=Set Of 0.. 10;

Var A, B : num;

К : Byte;

Выполним операции присваивания:

К : = 2; А : = [1, К + 2]; В: = [К-1,7];

Теперь множество А состоит из элементов: А [1, 4], множество В состоит из элементов: В [1, 7].

d) вычислим значения выражений:

[21] <> [21, 21]; {результат операции дает False}

[' k ',' 1 '] = [' k ',' 1 ']; {результат операции дает True}

[ ] <= [' 0 '.. ' 9 ']; {результат операции дает True}

' r ' In [' а '.. ' z ']; {результат операции дает True}

Trunc (9.5) In [7, 8, 9]; {результат операции дает True}

3.6. Нахождение элемента во множестве

В операции проверки вхождения элемента во множество, обозначаемой служебным словом In, первый операнд должен принадлежать базовому типу, а второй – множественному типу значений. Для определения наличия элемента во множестве используют такую конструкцию:

If < элемент базового типа > In < множество >

Then < команда 1 >

Else < команда 2 >;

Пример 3

Проверить, принадлежит ли число 25 множеству а : = [21, 4, 12, 25] можно так:

n:=25;

а: = [21,4,12,25];

If n In a Then WriiteLn ('Число', n, 'входит во множество')

Else WriiteLn ('Число', n, 'во множество не входит');

В результате выполнения операции In имеем: Число 25 входит во множество.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]