Читайте также:
|
|
Множество — это набор элементов одинакового типа, которые рассматриваются как единое целое. Элементы множества не пронумерованы, следовательно, нельзя обратиться к отдельному элементу множества по его индексу. Поэтому множества используются в тех задачах, где порядок следования элементов данных не имеет значения (например, множество гласных или согласных букв, множество ходов шахматной фигуры из определенного положения и т. д.).
Тип элементов множества называется базовым типом множества. Область значений типа множества — набор всевозможных подмножеств, составленных из элементов базового типа.
В языке Turbo Pascal имеются ограничения на базовый тип. Это может быть только порядковый тип, количество значений которого не превышает 256. Из простых типов к таким относятся char, byte, boolean. Разрешается использовать перечисляемый тип и диапазон (если он включает не больше 256 элементов).
Это существенные ограничения, которые не позволяют использовать множества в серьезных задачах обработки данных. Все же для ряда задач применение множеств может обеспечить серьезные преимущества по сравнению с использованием других структур данных — массивов или строк.
При задании значений элементов множества применяются квадратные скобки.
Например: [1,2,3,4], ['а','Ь','с1Ь ['а'.. 'г'}
Если множество не имеет элементов, оно называется пустым и обозначается []. Пустое множество включено в любое другое.
Для объявления множественного типа используется словосочетание set of (множество из...). Формат объявления множественных типов следующий:
Type
ИмяТипа = set of ТипЭлементовМножества; var
ИмяПеременной,...: ИмяТипа;
Можно описать переменные множественного типа и без предварительного объявления типа:
var ИмяПеременной,...: set of Тип;
Можно объявить константы множественного типа:
const ИмяКонстанты=[ЗначениеМножества];
а также типизированные константы:
const ИмяКонстанты:ТипМножест'ва= [ЗначениеМножества];
Например:
const number - [1,4,7,9]; type simply = set of 'a'.-'h1;
var pr: simply;
letter: set of char; {без предварительного описания в разделе типов}
В данном примере в множество рг могут входить значения символов латинского алфавита от 'а' до 'h1; в множество letter — значения любых символов. Попытка присвоить другие значения вызовет ошибку выполнения.
Замечание
В памяти множества представлены особым образом. Каждому значению базового типа множества в памяти отводится 1 бит (не байт!). Следовательно, максимальный размер ячейки памяти, отводимой под множество, составляет 32 байта. Поскольку все значения порядкового типа расположены строго по порядку, 1 в соответствующем бите означает наличие данного значения в множественной переменной, а 0 — отсутствие.
Исходя из особенностей внутреннего представления множеств, можно сделать два основных вывода:
П в множестве не может быть одинаковых элементов, что согласуется и с нашими математическими знаниями;
П все операции над множествами выполняются значительно эффективней, чем над другими структурами данных.
Дата добавления: 2015-11-14; просмотров: 46 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Преобразование строчных букв в заглавные | | | Операции над множествами |