Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции - Паскаль-переплет.doc
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
626 Кб
Скачать
☆

§22. Множества

Множество в Паскале представляет собой набор различных элементов одного (базового) типа.

Базовый тип - это совокупность всех возможных элементов множества. Всего в базовом типе должно быть не более 256 различных элементов. Значение переменной множественного типа может содержать любое количество различных элементов базового типа - от нуля элементов (пустое множество) до всех возможных значений базового типа

Множества, используемые в программе, могут быть описаны либо в разделе Type:

Type <имя типа> = Set Of <тип элементов>;

Var <имя множества> : <имя типа>;

Либо непосредственно в разделе описания переменных Var:

Var <имя множества> : Set Of <тип элементов>;

Пример.

Type mnog_Char=Set Of Char;

Var mn1 : Set Of Char;

mn2 : mnog_Char;

mn3 : Set Of ‘A’..’Z’;

s1 : Set Of Byte;

s2 : Set Of 1000..1200;

Здесь mn1 и mn2 - это множества символов; так как различных символов всего 256, то тип Char можно использовать в качестве базового;

mn3 - множество больших латинских букв;

s1 - множество целых чисел (от 0 до 255); так как тип Byte содержит только целые числа от 0 до 255, его тоже можно использовать в качестве базового типа элементов;

s2 - множество целых чисел от 1000 до 1200.

Формирование (конструирование) множеств. В программе элементы множества задаются в квадратных скобках, через запятую. Если элементы идут подряд друг за другом, то можно использовать диапазон.

Пример Type digit = Set Of 1..5;

Var s : digit;

Переменная s может принимать значения, состоящие из любой совокупности целых чисел от 1 до 5;

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

[1], [2], [3], [4], [5] - одноэлементные множества;

[1,2], [1,3], ...., [2,4], [4,5] - двухэлементные множества (пара любых элементов);

[1,2,3], [1,2,4], ... , [3,4,5] - трехэлементные (тройка элементов);

[1,2,3,4], [1,2,3,5], [1,2,4,5], [1,3,4,5], [2,3,4,5] - четырехэлементные;

[1,2,3,4,5] - полное множество (взяты все элементы базового типа).

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

Объединение двух данных множеств называется множество элементов, принадлежащих хотя бы одному из этих множеств. Знак операции объединения множеств - «+».

A B A+B

Примеры

1) [‘A’, ‘F’] + [‘B’, ‘D’] = [‘A’, ‘F’, ‘B’, ‘D’];

2) [1..3, 5, 7, 11] + [3..8, 10, 12, 15..20] = [1..8, 10..12, 15..20]

Пусть S1:=[1..5, 9], a S2:=[3..7, 12]. Тогда если S:=S1 + S2,

то S=[1..7, 9, 12].

Пусть А1:=[‘a’..’z’]; A1:=A1 = [‘A’]. Тогда A1=[‘A’, ‘a’..’z’].

Пересечением двух множеств называется множество элементов, принадлежащих одновременно и первому, и второму множеству. Знак операции пересечения - «*».

А B A*B

Примеры.

1) [‘A’, ‘F’] * [‘B’, ‘D’] = [ ] , так как общих элементов нет;

  1. [1..3, 5, 7, 11] * [3..8, 10, 12, 15..20] = [3, 5, 7];

  1. если S1:=[1..5, 9] и S2:=[3..7, 12], a S:=S1 * S2, то S=[3..5].

Разностью двух множеств называется множество, состоящее из тех элементов первого множества, которые не являются элементами второго. Знак операций вычитания множеств - «»

A B A-B

Примеры.

[‘A’, ‘F’] - [‘B’, ‘D’] = [‘A’, ’F’ ] , так как общих элементов нет;

[1..3, 5, 7, 11] - [3..8, 10, 12, 15..20] = [1, 2, 11];

если S1:=[1..5, 9] и S2:=[3..7, 12], a S:=S1 - S2, то S=[1, 2, 9];

A1:=[‘A’..’Z’]; A1:=A1 - [‘A’]. Тогда А1=[‘B’..’Z’].