Тип данных множества
Множества ограниченный упорядочный набор различных элементов одного базового типа. Базовый тип – совокупность всех возможных элементов множества. Всего в множестве не более 256 различных элементов.
Множества Значение переменной множественного типа может содержать любое количество элементов базового типа от нуля элементов (пустое множество) до всех возможных значений базового типа (их должно быть не более 256). Элемент множества занимает в памяти 1 байт.
Описание множества Type = Set of ; Var : ; или Var : Set of ;
Пример описания Type mnog_Char=Set of Char; Var mn1: Set of Char; mn2: mnog_Char; mn3: Set of A..Z; s1: Set of Byte; s2: Set of (A,O,E);
Пример описания Typedigit = Set of 1..5; Vars: digit; Переменная s может принимать значения, состоящие из любой совокупности целых чисел от 1 до 5: [] пустое множество; [1], [2], [3], [4], [5] одноэлементные множества; [1,2], [1,3],..., [2,4],[4,5] двухэлементные множества (пара любых элементов); [1,2,3], [1,2,4],..., [3,4,5] трехэлементные множества (тройка элементов); [1,2,3,4], [2,3,4,5], [1,3,4,5], [1,2,4,5], [1,2,3,5] четырехэлементные множества; [1,2,3,4,5] полное множество (взяты все элементы базового типа).
Операции над множествами Объединением двух данных множеств называется множество элементов, принадлежащих хотя бы одному из этих множеств. Знак операции объединения множеств в Паскале «+». Пример: [A, F]+[B, D]=[A, B, D, F];
Операции над множествами Пересечением двух множеств называется множество элементов, принадлежащих одновременно и первому, и второму множеству. Знак операции пересечения множеств в Паскале «*». Пример: [A, F]*[B, D]=[ ] [1..3, 5, 7, 11]*[3..8, 10, 12, ]=[3, 5, 7];
Операции над множествами Разностью двух множеств называется множество, состоящее из тех элементов первого множества, которые не являются элементами второго. Знак операции вычитания множеств «-». Пример: [A, F]- [B, D]=[A, F] [1..3, 5, 7, 11]-[3..8, 10, 12, ]=[1, 2, 11];
Операции над множествами Операция принадлежности элемента множеству. Эта логическая операция обозначается служебным словом in. Результат операции имеет значение true, если элемент входит в множество, и false в противном случае. Пример: Выражение 5 in [3..7] имеет значение true, Выражение a in [A..Z] имеет значение false.
Сравнение множеств Для сравнения множеств используются операции отношения: = проверка на равенство (совпадение) двух множеств; проверка на неравенство двух множеств; =, > проверка на вхождение второго множества в первое.
Пример1. Подсчитать количество цифр в тексте и вывести разные цифры из текста. var c,z:set of char; k,I,b:byte; s:string; p;char; begin z:=[ ]; c:=[0..9]; b:=0; readln(s); k:=length(s); for i:=1 to k do if s[i] in c then begin z:=z+[s[i]]; inc(b); end; writeln(кол цифр =,b); writeln(разные цифры); for p:=0 to 9 do if p in z then write(p:2); end.
Пример2. Составить программу поиска простых чисел в промежутке [1..N]. «Решето Эратосфена» var m:set of byte; i,k,n:integer; begin readln(n); m:=[2..n]; for k:=2 to n div 2 do for i:=2 to n do if (i mod k=0) and (ik) then m:=m-[i]; for i:=1 to n do if i in m then write(i, ); end.
Составить программу выделения следующих множеств из множества целых чисел от 1 до 30: множества чисел, кратных 2; множества чисел, кратных 3; Из первых двух множеств создать множество чисел, кратных 6; множество чисел, кратных 2 или 3; множество чисел, делящихся на 3, но неделящихся на 2.