Множество в Pascal.
![]() |
Множества в Pascal. |
Количество элементов, входящих в множество, может меняться в пределах от 0 до 256 (множество, не содержащее элементов, называется пустым). Множества отличаются от массивов непостоянством количества своих элементов, а также элементы множества не пронумерованы и неупорядочены. Действия могут выполняться только над множеством в целом.
Тип элементов множества называется базовым типом. Базовый тип м.б. любым порядковым (целым, логическим, символьным, интервальным, перечисляемым). Элементы множества задаются в [] (например: [3,4,5], [1..10], [‘a’,’c’], [ ]-пустое множество). Порядок записи элементов множества не имеет значения: [1,2,3]=[3,1,2]
Описание множеств
- в разделе переменных:
VAR <идентификатор>: set of <базовый тип>;Например:
VAR a: set of OF REAL;
VAR b: set of ‘a’..’z’;
- в разделе типов:
TYPE <имя типа> = set of <базовый тип>;
VAR <идентиф.множества> : <идентиф.типа>;Нельзя пользоваться операциями ввода/вывода для множественных переменных.
Множественная переменная может получить конкретное значение в результате выполнения оператора присваивания (<множеств.переменная>:=<множеств.выражение>; например: a:=[1,2,3])
Операции над множествами
- Объединение множеств - результат содержит элементы первого множества, дополненные недостающими элементами из второго множества ([1,2,5,4,6]+[2,4,7,8]=[1,2,4,5,6,7,8])
- Пересечение множеств - результат содержит элементы, общие для обоих множеств ([1,2,4,7]+[3,8,2,6]=[2])
- Разность множеств - результат содержит элементы из первого множества, которые не принадлежат второму ([1,2,5]+[2,5,6]=[1])
- Операции отношения
Множества можно сравнить между собой. Результат – истина или ложь. Можно применять все операции, кроме < и >.A=B – множества совпадают.
A<>B – множества не совпадают.
A<=B –все элементы множества А принадлежат множеству В.
A>=B –все элементы множества B принадлежат множеству A. - Jперация вхождения устанавливает связь между множеством и скалярной величиной, тип которой совпадает с базовым типом множества (x IN M, где x-скалярная величина, M-множество), например: 4 IN M
Вывод множеств
- Можно из множества сформировать строку, а потом ее вывести
For c:='a' To 'z' Do If (c In M) Then writeln(c);
- Вывод по символам