Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
metodichka_red._sent2 (2).doc
Скачиваний:
6
Добавлен:
02.09.2019
Размер:
1.07 Mб
Скачать

7.2 Множества

Множества – это наборы однотипных, логически связанных друг с другом объектов. Количество элементов, входящих в множество меняется в пределах от 0 до 256. Описание типа множества имеет вид:

<имя типа> = SET OF < баз.тип>,

где:

<имя типа> - правильный идентификатор;

SET OF – зарезервированные слова (множество, из);

< баз.тип> - базовый тип элементов множества, в качестве которого может использоваться любой порядковый тип, кроме WORD, INTEGER, LONGINT

Пример. Задание множества:

type

digitchar = set of ‘0’. .’9’;

digit = set of 0 . . 9;

var

s1, s2, s3 : digitchar;

s4, s5, s6 : digit;

begin

. . .

s1 :=[‘1’, ’2’, ’3’];

s2 :=[‘3’, ’2’, ’1’];

s3 :=[‘2’, ’3’];

s4 :=[0. .3, 6];

s5 :=[4, 5];

s6 :=[3. .9];

. . .

end.

В примере множества s1 и s2 эквивалентны, множество s3 включено в s2, но не эквивалентно ему.

Над множествами определены следующие операции:

* - пересечение множеств; результат содержит элементы одинаковые для двух множеств; s4*s6 содержит [3], s4*s5 – пустое множество.

+ - объединение множеств; результат содержит элементы первого множества, дополненные недостающими элементами из второго множества.

s4+s5 содержит [0, 1, 2, 3, 4, 5, 6];

s5+s6 содержит [ 3,4,5,6,7,8,9];

  • разность множеств; результат содержит элементы из первого множества, которые не принадлежат второму:

s6-s5 cодержит [3,6,7,8,9];

s4-s5 cодержит [0,1,2,3,6];

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

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

<= проверка вхождения; возвращает TRUE, если первое множество включено во второе.

>= проверка вхождения; возвращает TRUE, если второе множество включено в первое.

In – проверка принадлежности.

Наиболее часто используют две процедуры:

INCLUDE – включает новый элемент во множество.

Include (S, I)

EXCLUDE - исключает элемент из множества.

Exclude (S,I).

Задания и вопросы к практическим

  1. Что понимается под множеством?

  2. Какие вы знаете операции над множествами в математике?

  3. Как записываются операции над множествами в языке Паскаль?

  4. Как задаются множества?

  5. Что такое пустое множество и как оно задается?

  6. Как организовать вывод элементов множества?

  7. Имеются три множества символьного типа, которые заданы своими конcтрукторами:

Y1=[‘A’,’B’,’D’,’R’,’H’];

Y2=[‘R’,’A’,’H’,’D’];

Y3=[‘A’,’R’]

Сформировать новое множество:

X=(Y1 Y2)  (Y1\Y2)

Вывести на печать полученное множество. Проверить включено ли множество Y3 во множество X.

  1. type день недели = (пн,вт,ср,чт,пт,сб,вс);

Описать множественный тип, включающий в себя множества из:

a) название любых дней недели;

b) название рабочих дней недели.

  1. var s:set of char; c,d:char;

Переменной S присвоить:

  1. пустое множество;

  2. множество из строчных гласных латинских букв (a,e,i,o,u);

  3. множество из всех цифр;

  4. множество литер, которые больше c, но меньше d (c<d).

  1. type день недели = (пн,вт,ср,чт,пт,сб,вс);

рабочий день= пн. .пт;

var wd: день недели; t:boolean;

Требуется переменной t присвоить значение true, если wd – рабочий день, и значение False иначе.

  1. Не используя дополнительные переменные, поменять местами значения переменных-множеств А и В.

  2. Var x, y, z: set of 8 . . 22;

Переменной х присвоить множество всех целых чисел от 8 до 22, переменной y – множество всех простых чисел из этого диапазона, а переменной z – множество всех составных чисел из этого же диапазона.

  1. type M=set of 0 ..99;

Описать функцию card(A), подсчитывающую количество элементов в множестве А типа М. (yапример, card([5,8,23])=3).

  1. const n=10;

type номер = 1..n;

матрица = array [номер, номер] of real;

ном=set of номер;

Описать функцию sum(A, s1,s2) вычисляющую сумму тех элементов матрицы А, номер строк и столбцов которых принадлежит соотвественно непустым множествами s1 и s2 ном.

  1. var A, B: set of char; x:char;

Переменной В присвоить множество, полученное из А:

  • добавлением элемента х;

  • удалением элемента х.

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