Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Teoria 158783 .doc
Скачиваний:
6
Добавлен:
25.09.2019
Размер:
1.72 Mб
Скачать

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

Над множествами определены операции, которые представляет Таблица 4 .2.

Таблица 4.2 – Операции над множествами

Операция

Описание операции

Тип результата

=

Равно

Boolean

<>

Не равно

<=

Результат операции равен True, если левое множество является подмножеством правого

>=

Результат операции равен True, если правое множество является подмножеством левого

In

Результат операции равен True, если некоторое скалярное значение (левый операнд) является элементом множества (правый операнд)

Not *)

Дополнение множества (одноместная операция)

Set

+

Объединение множеств

*

Пересечение множеств

Разность множеств A – B = A * Not B

Xor *)

Исключающее объединение множеств

A Xor B = A + B – A * B

Здесь *) – операции, определенные не во всех версиях языка Паскаль.

Над множественными переменными определена одна встроенная функция – Sizeof(X), указывающая количество байт для представления значения X множественной переменной.

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

Пример 4.5.

Операции над множествами. Пусть имеются объявления, приведенные в примере 4.3.

I := [1, 3, 5];

B := 2 In I {в B значение False}

B := [3, 5]<=I {в B значение True}

B := [4, 5]<=I {в B значение False}

I := Not I {в I значение [2, 4, 6..10] – дополнение множества}

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

Объединение множеств (I2 := I + I1) – это множество, состоящее из элементов, входящих хотя бы в одно из исходных множеств I и I1. Объединение множеств иллюстрирует Рисунок 4 .31.

Рисунок 4.31 – Объединение множеств

Пересечение множеств (I2 := I * I1) – это множество, состоящее из элементов, входящих в оба исходных множества I и I1. Пересечение множеств иллюстрирует Рисунок 4 .32.

Рисунок 4.32 – Пересечение множеств

Разность множеств (I2 := II1) – это множество, состоящее из элементов множества I, не входящих в множество I1. Разность множеств иллюстрирует Рисунок 4 .33.

Рисунок 4.33 – Разность множеств

Пример 4.6.

Операции над множествами. Пусть имеются объявления, приведенные в примере 4.3.

I1 := [1, 2, 3];

I := [1, 3, 5];

I2 := I1 + I; {в I2 значение [1, 2, 3, 5]}

I2 := I1*I; {в I2 значение [1, 3]}

I2 := I – I1; {в I2 значение [5]}

Выражения, приведенные в примере 4.6, представляют собой множественные выражения.

Старшинство операций в множественных выражениях аналогично старшинству в арифметических выражениях: вначале вычисляются выражения в скобках, затем операция *, после этого операции + и – в порядке их следования слева направо.

Например, результатом вычисления множественного выражения

[1, 2, 5, 6, 7] * [2 .. 6] + [3, 9]

является множество

[2, 3, 5, 6, 9].

Пример 4.7.

Использование множественного типа. Подсчитать общее количество букв X, Y, Z в исходном тексте, оканчивающемся точкой.

Program Mno;

Var

Kol: Integer;

B: Char;

Begin

Kol := 0;

Read (B); {Чтение первой буквы текста}

While B<>.’ Do

Begin

If B In [‘X’, ‘Y’, ‘Z’] Then {Если значение буквы входит в

множество [‘X’, ‘Y’, ‘Z’]}

Kol := Kol + 1;

Read (B); {Чтение очередной буквы текста}

End;

Writeln (Kol);

End.

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