Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Uchebnoe_posobie_Programirovanie.docx
Скачиваний:
5
Добавлен:
08.12.2018
Размер:
217.65 Кб
Скачать

8. Множества

8.1. Понятие множества

Множества в математике – произвольной набор объектов природы, понимаемый как единое целое. На вид объектов и их число не накладывается никаких ограничений. Понятие множества в Т-П несколько уже, чем математическое понятие.

Множества – это наборы однотипных связанных друг с другом объектов. Характер связи между объектами лишь подразумевается программистом, но не контролируется Т-П. Количество элементов, входящих в множество, может меняться 0-255. 1 элемент множества занимает 1 байт.

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

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

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

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

<имя типа> = set of <базовый тип>;

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

set of - зарезервированные слова (множество ,из);

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

Пример

TYPE

Daytype = (mon,tue,wed,thu,fri,sat.sun);

VAR

Washdays,bathdays : set of daytype;

Можно вовсе опустить TYPE

VAR

Washdays,bathdays : set of (mon,tue,wed,thu,fri,sat.sun)

Несколько примеров определения переменных типа множество:

Var

Teaset : set of char;

Letters : set of ‘A’..’Z’;

digits: set of ‘0’..’9’;

dice: set of 2..122;

const

number :set of=[4,7,1,9];

8.2. Конструктор множества

Конструктор множества используется для задания множества: список элементов множества перечисляется через (,), обрамляется квадратными скобками.

Пример

Var

town : set of (Moscow, Kiev, Sochi);

S1,S2,S3 : set of ‘0’…’9’

S4,S5,S6 : set of 0…9;

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

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

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

S4=: [0…3,6];

S5=: [4,5];

S6=: [3..9];

Переменная town множественного типа может принимать следующие значения:

[Moscow] [Kiev] [Sochi]

[Moscow,Sochi] [Moscow, Kiev] [Kiev, Sochi]

[Moscow, Kiev, Sochi] [ ]

В общем случае, если базовое множество содержит N элементов, производный множественный тип определяет подмножеств. Переменная town может принимать =8 различных значений.

Пример

Множество [‘c’..’a’] является пустым, т.к. в перечислении объектов базового типа порядковый номер ‘c’ > порядкового номера ‘a’.

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

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

*- пересечение множеств ; результат содержит общие для обоих множеств элементы, т.е. S4*S6 содержит [3,6],

S4*S5 – [ ]

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

т.е. S4+S5 содержит [0…6],

S5+S6 содержит [3..9]

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

т.е. S6-S5 содержит [3,6,7,8,9]

S4-S5 содержит [0,1,2,3,6]

Для сравнения множеств используются операции отношения =,<>,<=,>=, IN.

  • = - проверка эквивалентности; возвращает TRUE, если оба множества эквивалентны. Множества S1и S2 эквивалентны, т.к. содержат одинаковые элементы (порядок следования элементов безразличен);

  • <>- проверка неэквивалентности, возвращает TRUE, если множества неэквивалентны .[7,1,3] <>[2,4,6,8] - TRUE;

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

  • >= - проверка вхождения; возвращает TRUE, если второе множество включено в первое. [‘a’…’e’] >= [‘a’,’б’] - TRUE;

  • IN – проверка принадлежности; в этой операции первый элемент выражение, а второй множество. Оба элемента должны быть одного и того же типа. Операция возвращает TRUE, если выражение имеет значение, принадлежащее множеству.

Порядок выполнения операций сравнения следующий: 1) *; 2) +,-; 3 ) IN,=,<>,<=,>=.

Пример:

  1. 5 IN [3..7] – TRUE.

  • 2) K:=1; K+2 IN [0..7]*[4,6,8] =false

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

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