Главная страница
Содержание
 
 

Тип данных «Множество».

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

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

Множество может принимать все значения базового типа.

Базовый тип не должен превышать 256 возможных значений (т.е. диапазон значений от 0 до 255).


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

Задача 1. Имеется несортированный массив чисел. Необходимо вывести уникальные элементы массива в отсортированном виде.

Листинг 1. Применение множеств
program listing_1;
uses crt; (* подключаем библиотеку *)
const n=100;
var i,k: byte;
	m: set of byte;
begin
 clrscr; (* очистка экрана *)
 randomize;
 m:=[]; { инициализация пустого множества }
 writeln('Random array:');
 for i:=1 to n do begin
  k:=random(31)+10;
  if not (k in m) {проверка на принадлежность}
  then m := m + [k]; {добавление}
  write(k,' ')
 end;
 writeln; writeln('Set:');
 for i := 0 to 255 do {диапазон значений byte}
	if i in m then write(i:4)  
end.


Операция in проверяет, принадлежит ли элемент множеству. Ниже приведены две эквивалентные конструкции – проверка является ли символ c (тип char) латинской буквой или цифрой:

((c >= 'a') and (c <= 'z') or | 
 (c >= 'A') and (c <= 'Z') or | 
 (c >= '0') and (c <= '9'))    | 
c in ['a'..'z', 'A'..'Z', '0'..'9']


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