Тип множина

Множина – це кінцевий набір значень деякого базового типу. 
Базовий тип не може мати більше 256 можливих значень, і порядкові значення нижньої та верхньої межі не повинні виходити за межі діапазону 0..255. 
В якості базового може бути використаний любий порядковий тип, крім типів word, integer, LongInt. 
Будь-яка множина може приймати значення [ ], що називається порожньою множиною. 
Опис множини має вигляд: 
<ім’я множини>=set of <базовий тип>; 
Наприклад: 
type digitChar=set of ‘0’..’9’;{тип множина цифрових символів} 
digit=set of 0..9;{тип множина цілих чисел від 0 до 9} 
var s1,s2,s3:digitchar; s4,s5,s6:digit; 
Над множинами можна виконувати такі операції: 
“+” – об’єднання двох множин з сумісними базовими типами ; 
“-” – різниця двох множин з сумісними базовими типами; 
“*” – перетин двох множин з сумісними базовими типами. 
Результати операцій над множинами підпорядковуються правилам математичної логіки множин, а саме: 
• порядкове значення С належить множині (А+В) тільки в тому випадку, коли воно належить множині А або множині В; 
• порядкове значення С належить множині (А-В) тільки в тому випадку, коли воно належить множині А, але не належить множині В; 
• порядкове значення С належить множині (А*В) тільки в тому випадку, коли воно належить і множині А, і множині В одночасно; 
Допустимою також являється операція перевірки належності елемента до заданої множини. Перевірка здійснюється за допомогою оператора “in”. Цей оператор повертає логічне значення “true”, якщо даний елемент належить заданій множині і значення “false”, якщо не належить. 
Крім того існують дві процедури, які полегшують процес формування множин – це процедура 
Include(var s: set of T; I:T), яка додає елемент до множини, та 
процедура Exclude(var s: set of T; I:T), яка видаляє вказаний елемент із множини. 
Наприклад: 
type digitChar = set of ‘0’ .. ‘9’; 
digit = set of 0 .. 9; 
var s1,s2,s3:digitchar; 
s4,s5,s6:digit; 
begin 
s1 :=[‘1’,’2’,’3’]; { задаємо множину s1, що складається з символів 1, 2, 3} 
s2 :=[‘3’,’4’,’5’]; { задаємо множину s2, що складається з символів 3, 4, 5} 
s3 :=s1+s2; {множина s3 складатиметься із символів 1, 2, 3, 4, 5} 
s4 :=[0..3,6]; { множина s4 складатиметься із цифр 0, 1, 2, 3, 6} 
s5 := [2,3]; { множина s5 складатиметься із цифр 2, 3} 
s6 := s4-s5; { множина s6 складатиметься із цифр 0,1,6} 
s6:=s4*s5; { множина s6 складатиметься із цифр 2,3} if (1 in s6 ) then 
writeln(‘Yes’) {перевіряємо чи належить цифра 1 до s6} 
else 
writeln(‘No’); {і друкуємо Yes, якщо належить, або No, якщо не належить. В даному випадку буде надруковано No} 
include(s6,4); {множина s6 складатиметься з елементів 2,3,4} 
exclude(s6,2); { множина s6 складатиметься з елементів 3,4} 
end. 
Окрім перелічених вище операцій над множинами допустимою є також операція порівняння двох множин. При цьому діють такі правила: 
• вираз А=В істинний тільки тоді, коли А і В містять однакові елементи; 
• вираз А<>В істинний, якщо хоч одна із заданих множин містить хоч один елемент, відсутній в іншій; 
• вираз А<=В істинний, якщо кожен елемент множини А являється також елементом множини В; 
• вираз А>=В істинний, якщо кожен елемент множини В являється також елементом множини А. 
Використання множин дозволяє зробити програму більш еффективною за рахунок зменшення кількості перевірок. 

Немає коментарів:

Дописати коментар