Множественный тип данных
В общем смысле, множество - набор элементов, не организованных в порядке следования. Под множеством в Паскале понимается конечная совокупность элементов, принадлежащих некоторому базовому типу. Ord Примечание: В качестве базовых типов могут использоваться: перечислимые типы данных, символьный и байтовый типы или диапазонные типы на их основе (функция Ord для используемого базового типа должна быть в пределах от 0 до 255).
Type set of Var Type = set of ; Var : ; Пример: Type set of Type SetByte = set of byte; {множество, определённое над типом byte}Var a:SetByte;
Type set of SetChisla = set of ; {множество, определённое в диапазоне от 10 до 20} set of Symbol = set of char; {множество, определённое на множестве символов} Month = (January, February, March, April, May, June, July, August, September, October, November, December); set of Season : set of Month; {тип множества, определённый на базе перечислимого типа Month}Var Letter, Digits, Sign : Symbol {множества, определённые над символьным типом} Winter, Spring, Summer, Autumn, Vacation, WarmSeason : Season; Index : SetChisla=[12, 15, 17]; set of Operation : set of (Plus, Minus, Mult, Divid); set of Param : set of 0..9=[0, 2, 4, 6, 8];
1. Конструктор множества: Sign:=['+', '-']; Spring:=[March, April, May]; b:=b+[ 'k', 'l', 'd' ] 2. Через диапазон: Digits:=['0'..'9']; WarmSeason := [May.. September]; a:=[ ] Примечание: Пустое множество – a:=[ ] (без пробела)
Const Const YesOrNo = ['Y', 'y', 'N', 'n']; Const set of set of Const Digits : set of char=['0'..'9']; DigitsAndLetter : set of char=['0'..'9', 'a'..'z', 'A'..'Z']; Const Const Yes = ['Y', 'y']; No = ['N', 'n']; YesOrNo = Yes+No;
Определение. Объединением 2-х множеств называется третье множество, которое содержит элементы, которые принадлежат хотя бы одному из множеств, при этом каждый элемент входит в множество только один раз.
Type set of Type Symbol = set of char; Var Var SmallLatinLetter, CapitalLatinLetter, LatinLetter : Symbol; Begin Begin SmallLatinLetter :=['a'..'z']; CapitalLatinLetter := ['A'..'Z']; LatinLetter := SmallLatinLetter+CapitalLatinLetter; End.
Определение. Разностью 2-х множеств является третье множество, которое содержит элементы 1-го множества, не входящие во 2-е множество. a: = a-[ 'd' ]; Если в вычитаемом множестве есть элементы, отсутствующие в уменьшаемом, они не влияют на результат.
System Модуль System содержит процедуры для включения элемента в множество Include(Var S : set of T; Element : T); и исключения из множества Exclude(Var S : set of T; Element : T);где S - множество элементов типа Т, а Element - включаемый элемент. Эти функции отличаются от операций объединения и вычитания множеств только скоростью исполнения.
Определение. Пересечением множеств называется множество, содержащее элементы одновременно входящие в оба множества. Операция обозначается знаком умножения.
Создайте множество, заполните его случайными символами. Удалите из множества все символы кроме букв. ab c Пользователь вводит строку. Поместите все цифры из этой строки во множество a, все буквы – во множество b, все остальные символы – во множество c. Дана непустая последовательность символов. Требуется построить и напечатать множество, элементами которого являются встречающиеся в последовательности знаки препинания.