Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лаб4_множества_студ.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
63.55 Кб
Скачать

8

Лабораторная работа № 4 множества

Цель работы: Овладеть понятиями множество и элементы множеств; изучить способы задания множеств; изучить операции, производимые над множествами, применить усвоенные знания на практике.

Теоретические сведения

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

Множества в– это ограниченный, упорядоченный набор различных элементов одного базового типа.

Базовый тип – это совокупность значений, из которых могут быть образованы множества. Всего может быть не более 256 различных элементов. (Идет то же самое расширение, что и по строке.)

Постоянные множества (множества-константы) и в Pascal и в математике задаются путем их перечисления.

Математика

Pascal

0

[]

{1, 2, 3}

[1, 2, 3]

{A, B, C, D}

['A', 'B', 'C', 'D']

{1, 2, …, N}

[1..N]

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

Множества в Pascal описываются:

TYPE имя типа = SET OF базовый тип;

VAR имя переменной: имя типа;

или

VAR имя переменной: SET OF базовый тип;

или

CONST имя переменной = [элементы множества];

Пример:

VAR A: SET OF INTEGER;

B: SET OF 'A'..'Z';

C: SET OF CHAR;

В отличие от массивов к элементам множества нет прямого доступа, поэтому ввод и вывод элементов множества осуществляется:

  • Ввод с помощью операции сложения (объединения)

  • Вывод с помощью проверки принадлежности IF.

Формирование множеств

Если элементы множества идут подряд друг за другом, то можно использовать диапазон. Например, множество описанное: VAR A: SET OF 1..5; может принимать значения:

A = [];

A [1], [2], [3], [4], [5]

A [1, 2], [1, 3], [1, 4], [1, 5]…

A [1, 2, 3]…

A [1, 2, 3, 4]…

A [1, 2, 3, 4, 5]

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

Математика

Pascal

В Pascal определены операции над множествами:

1. Объединение

Математика:

Pascal:

Объединением двух множеств называется множество элементов принадлежащих обоим множествам.

Пример: ['A', 'B'] + ['C', 'D'] = ['A', 'B', 'C', 'D']

2. Пересечение

Математика:

Pascal:

Пересечением двух данных множеств называется множество элементов принадлежащих одновременно и первому и второму множеству, общие элементы.

Пример: ['A', 'B']*['C', 'D'] = [];

3. Исключение

Математика:

Pascal:

Вычитанием двух множеств называется множество, состоящее из тех элементов первого множества, которые не являются элементами второго множества.

Пример: ['A', 'B'] – ['C', 'D'] = ['A', 'B'];

Над значениями множественного типа определены и некоторые операции отношения. Операндами операций над множественными значениями в общем случае являются множественные выражения. Среди операций отношения над значениями множественного типа особое место занимает специальная операция проверки вхождения элемента во множества, обозначаемая служебным словом in. В отличие от остальных операций отношения, в которых значения обоих операндов относятся к одному и тому же множественному типу значений, в операции in первый операнд должен принадлежать базовому типу, а второй – множественному типу значений, построенному на основе этого базового типа. Результатом операции отношения, как обычно, является логическое значение (true или false).

‘a’ in glasn значение операции true;

‘o’ in soglasn значение операции false;

Операция сравнения на равенство множественных типов Паскаля. Множества считаются равными (эквивалентными), если все элементы одного множества присутствуют в другом и наоборот. Для операции сравнения на равенство или неравенство используются символы ‘=’ и ‘<>’.

A:= [2,1,3];

D:= [1,3,2];

Тогда операция A=D имеет значение true, а операция A<>D имеет значение false.

Проверка включения. Одно множество считается включенным в другое (одно множество является подмножеством другого), если все его элементы содержатся во втором множестве. Обратное утверждение может быть и несправедливым. Операции проверки включения обозначаются ‘<=’ и ‘>=’.

letter >= glasn;

soglan <= letter;

Для добавления множеству нового элемента в Паскаль есть операция Include:

Include(<множество>, <элемент>)

Для удаления из множества какого-либо элемента можно воспользоваться операцией Exclude:

Exclude(<множество>, <элемент>)

Необходимо помнить, что добавляемый/удаляемый элемент должен быть тождественного множеству типа.

Все значения множества представляются в памяти последовательностями битов одинаковой длины. За каждое значение базового типа "отвечает" один бит. Если множество содержит некоторый элемент, в "ответственном" за него бите хранится 1, если не содержит - хранится 0.

Внутреннее представление X

x:=[]; 000000000000000>

x:=[2,3,5]; 011010000000000>

x:=[1..15]; 111111111111111>

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

x:=[2,3,5]; 011010000000000>

y:=[3,5,7,8]; 001010110000000>

z:=x+y; 011010110000000>

Поразрядные документы входят в набор команд процессора ЭВМ, поэтому выполняется быстро.

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

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