Множества.

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

 Таким образом,
1) в множестве могут содержаться элементы только одного, базового типа.
        [a, o, u, e]- множество;  [1, 5, 9, '3', df]- НЕ множество.
2) порядок элементов множества не фиксируется.
        множество [1, 4, 7, 5]эквивалентно множеству [4, 1, 7, 5]
3) в качестве базового типа может быть любой дискретный тип, содержащий не более 256 значений,
    т.е. перечислимый, ограниченный и тип char.

Задание множественного типа:

var имя_множества: set of тип

var m3: set of 1..3; 
{базовый тип - ограниченный}

правильными будут операторы:
m3:=[];   {пустое множество}
m3:=[1];
m3:=[3,2];
m3:=[1,2,3];
m3:=[1,3];  и т.д.

или

1 вариант

type имя_типа=set of тип;
var имя_переменной: имя_типа

 type dig = set of char;
var s:dig;
{базовый тип - символьный}

правильными будут операторы:
s:=['f', 'a'];   
s:=['1', 'v'];

2 вариант

type имя_типа= (значения);
var имя_переменной: set of имя_типа;

 type dig = (red, green, blue);
var s:set of dig;
базовый тип - перечислимый}

правильными будут операторы:
s:=[red];   
s:=[green, red];

Изображение значений: [1,2,3,5,6,7];  [1..3,5..7];  [1..3,5,6,7]; ['e', 't',].

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

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

A+B

[10] + [100,1000] = [10, 100, 1000]

[1..5] + [5..8] = [1..8] 

[1, 2, 4, 6, 5, 7] + [3, 5, 4, 6, 12, 1] = [1, 2, 3, 4, 5, 6, 7, 12] = [1..7, 12]
Внимание! Каждый элемент входит во множество только один раз.

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

A* B

[10] * [100,1000] = []

[1..5] * [5..8] = [5]

[1, 2, 4, 6, 5, 7] * [3, 5, 4, 6, 12, 1] = [1, 4, 5, 6]

3. Разность множеств

A - B

[10] - [100,1000] = [10]

[1..5] - [5..8] = [1..4]

[1, 2, 4, 6, 5, 7] - [3, 5, 4, 6, 12, 1] = [2,7]

Презентация "Действия над множествами" 

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

   1.    [1, 2, 7, 5, 0] + [3, 5, 1] =  [3, 1, 7, 5, 2, 0]
   2.    [1, 2, 7, 5, 0] * [3, 5, 1] = [5]
   3.    ['a', 'c', 'o', 'p'] * ['c', 'e', 'o'] = ['o', 'c']
   4.    ['o', 'a', 'p'] - ['e', 'p', 'o'] = ['a']
   5.    [10, 100] - [100, 1, 10] = [1]
   6.    ['a', 1, 8] + [1, 'p', 8] = ['a', 1, 8, 'p']
    
     

4. Проверка принадлежности элемента множеству

X in A

true , если элемент X принадлежит множеству A
false, если элемент X не принадлежит множеству A

10 in [100,1000] = false

7 in [5..8] = true

5. Проверка на равенство, неравенство и включение двух множеств

A = B
A равно B

[1,3,4,6]=[3,4,5,1]         -            false
[1,3,4,6]=[4,6,3,1]         -            true

A<>B
A не равно B

[1,3,4,6]<>[3,4,5,1]         -            true
[1,3,4,6]<>[4,6,3,1]         -            false

A<=B
множество A входит в множество B

[1,3,4,6,7]<=[1,3,4,7,9]         -      false
[1,3,4]<=[1,3,4,7,9]               -      true

A>=B
множество B входит в множество A

[1,3,4,6,7]>=[1,3,4,7]            -      true
[1,3,4,5,6]>=[1,3,4,7,9]         -      false

6. Процедуры добавления и удаления элементов массива

INCLUDE(S, i)
добавление элемента i в множество S

m:=[1,3,4,6];
include(m,5);

после процедуры m=[1,3,4,6,5]

EXCLUDE(S, i)
удаление элемента i из множества S

m:=[1,3,4,6];
exclude(m,3);

после процедуры m=[1,4,6]

 

 

Hosted by uCoz