Множество (тип данных)
Множество — тип и структура данных в информатике, является реализацией математического объекта множество.
Данные типа множество позволяют хранить ограниченное число значений определённого типа без определённого порядка. Повторение значений, как правило, недопустимо. За исключением того, что множество в программировании конечно, оно в общем соответствует концепции математического множества. Для этого типа в языках программирования обычно предусмотрены стандартные операции над множествами.
В зависимости от идеологии, разные языки программирования рассматривают множество как простой или сложный тип данных.
[править] Реализации
[править] Множество в Паскале
В языке Паскаль множество — составной тип данных, хранящий информацию о присутствии в множестве объектов любого счетного типа. Мощность этого типа определяет размер множества — 1 бит на элемент. В Turbo Pascal есть ограничение на 256 элементов, в некоторых других реализациях это ограничение ослаблено.
Пример работы с множествами:
type {определяем базовые для множеств перечислимый тип и тип-диапазон} colors = (red,green,blue); smallnumbers = 0..10; {определяем множества из наших типов} colorset = set of colors; numberset = set of smallnumbers; {можно и не задавать тип отдельно} anothernumberset = set of 0..20; {объявляем переменные типа множеств} var nset1,nset2,nset3:numberset; cset:colorset; begin nset1 := [0,2,4,6,8,10]; {задаем в виде конструктора множества} cset := [reb,blue]; {простым перечислением элементов} nset2 := [1,3,9,7,5]; {порядок перечисления неважен} nset3 := []; {пустое множество} nset1 := [0..5]; {возможно задавать элементы диапазоном} nset3 := nset1 + nset2; {объединение} nset3 := nset1 * nset2; {пересечение} nset3 := nset1 - nset2; {разность} if (5 in nset2) or {проверка на вхождение элемента} (green in cset) then ... end;
| Это заготовка статьи по информатике. Вы можете помочь проекту, исправив и дополнив её. |
|
|
|
|---|---|
| Неинтерпретируемые | Бит · Ниббл · Байт · Трит · Трайт · Слово |
| Числовые | Целый · Фиксированная запятая · С плавающей запятой · Рациональный · Комплексный · Длинный · Интервальный |
| Текстовые | Символьный · Строковый |
| Указатель | Адрес · Ссылка |
| Композитные | Алгебраический тип данных (обобщённый) · Массив · Ассоциативный массив · Класс · Список · Объект · Option type · Product · Структура · Множество · Объединение (tagged) |
| Другие | Логический · Низший тип · Коллекция · Перечисляемый тип · Исключение · First-class function · Opaque data type · Recursive data type · Семафор · Поток · Высший тип · Type class · Unit type · Void |
| Связанные темы | Абстрактный тип данных · Структура данных · Интерфейс · Kind (type theory) · Примитивный тип · Subtyping · Шаблон · Конструктор типа · Parametric polymorphism |