52e7bdb33997c233c00427f69eb76e2d.ppt
- Количество слайдов: 14
Тип данных множества
n n n Множества ограниченный упорядочный набор различных элементов одного базового типа. Базовый тип – совокупность всех возможных элементов множества. Всего в множестве не более 256 различных элементов.
Множества Значение переменной множественного типа может содержать любое количество элементов базового типа — от нуля элементов (пустое множество) до всех возможных значений базового типа (их должно быть не более 256). n Элемент множества занимает в памяти 1 байт. n
Описание множества Type <имя типа> = Set of <тип элементов>; Var <имя множества>: <имя типа>; или n Var <имя множества>: Set of <тип элементов>; n
Пример описания Type mnog_Char=Set of Char; Var mn 1: Set of Char; mn 2: mnog_Char; mn 3: Set of ‘A’. . ’Z’; s 1: Set of Byte; s 2: Set of (‘A’, ’O’, ’E’);
Пример описания Type digit = Set of 1. . 5; Var s: 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, 2, 3, 5] — четырехэлементные множества; [1, 2, 3, 4, 5] — полное множество (взяты все элементы базового типа).
Операции над множествами Объединением двух данных множеств называется множество элементов, принадлежащих хотя бы одному из этих множеств. Знак операции объединения множеств в Паскале — «+» . n Пример: [‘A’, ‘F’]+[‘B’, ’D’]=[‘A’, ’B’, ’D’, ‘F’]; n
Операции над множествами Пересечением двух множеств называется множество элементов, принадлежащих одновременно и первому, и второму множеству. Знак операции пересечения множеств в Паскале — «*» . n Пример: [‘A’, ‘F’]*[‘B’, ‘D’]=[ ] [1. . 3, 5, 7, 11]*[3. . 8, 10, 12, 15. . 20]=[3, 5, 7]; n
Операции над множествами Разностью двух множеств называется множество, состоящее из тех элементов первого множества, которые не являются элементами второго. Знак операции вычитания множеств — «-» . n Пример: [‘A’, ‘F’]- [‘B’, ‘D’]=[‘A’, ’F’] [1. . 3, 5, 7, 11]-[3. . 8, 10, 12, 15. . 20]=[1, 2, 11]; n
Операции над множествами Операция принадлежности элемента множеству. Эта логическая операция обозначается служебным словом in. Результат операции имеет значение true, если элемент входит в множество, и false — в противном случае. n Пример: Выражение 5 in [3. . 7] имеет значение true, Выражение ‘a’ in [‘A’. . ’Z’] имеет значение false. n
Сравнение множеств Для сравнения множеств используются операции отношения: n = проверка на равенство (совпадение) двух множеств; n <> проверка на неравенство двух множеств; n <=, < проверка на вхождение первого множества во второе; n >=, > проверка на вхождение второго множества в первое.
Пример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 (i<>k) then m: =m-[i]; for i: =1 to n do if i in m then write(i, ’ ‘); end.
n n n Составить программу выделения следующих множеств из множества целых чисел от 1 до 30: множества чисел, кратных 2; множества чисел, кратных 3; Из первых двух множеств создать ¡ ¡ ¡ множество чисел, кратных 6; множество чисел, кратных 2 или 3; множество чисел, делящихся на 3, но неделящихся на 2.


