Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Тема 7. Множини



Множина – це структурований тип даних, елементами якого є всі підмножини, побудовані на основі елементів базового типу.

Наприклад, множина, базовими для якої є елементи , складається з підмножин

,

де – порожня множина.

Всі елементи множини різні й невпорядковані, тому множини і – еквівалентні. Кількість елементів базового типу, на основі якого конструюється множинний тип, називається потужністю і не може перевищувати .

У програмі опис множини має вигляд

<ім’я типу> = set of <базовий тип>;

де <ім’я типу> – ідентифікатор, set, of – зарезервовані слова (множина, із), <базовий тип> – будь-який порядковий тип значення якого не перевищують 256.

У програмі множину можна описати за допомогою ідентифікатора типу або безпосередньо у розділі Var. Наприклад,

Type Tmn = set of char;

Var s1: Tmn;

s2: set of 0..9;

де множина символів s1 описана за допомогою ідентифікатора типу Tmn, а множина цифр s2 безпосередньо у розділі Var.

Існує також множина константа. Множина константа може бути типізованою або нетипізованою. Наприклад,

Const Mt:set of char=[‘a’.. ‘z’];

Mn=[0.. 9];

де Mt типізована множина константа із малих латинських літер, а Mn нетипізована множина константа із цифр.

Множина будується за допомогою конструктора. Конструктор – це список сталих, виразів, типів-діапазон базового типу, взятих у квадратні дужки. Наприклад,

Var S1:set of char;

S2: set of 0..9;

Begin

.................

S1:=[‘a’..’z’]; {множина всіх підмножин із малих латинських літер}

S2:= [1..3, 7, 9]; {множина всіх підмножин із цифр 1,2,3,7,9}.

End.

Над множинами визначені такі операції:

· – перевірка еквівалентності,

результат=

· – перевірка нееквівалентності,

результат=

· – перевірка входження,

результат=

· – перевірка входження,

результат=

· – перевірка належності,

результат=

· – об’єднання множин Рис.6.1. а),

результат=

· – переріз множин Рис.6.1. б),

результат=

· – різниця множин Рис.6.1. в),

результат=

А + В А * В А - В

а) б) в)

Рис. 6.1. а) ­– об’єднання множин, б) – переріз множин,

в) – різниця множин.

Окрім, зазначених операцій можна використовувати процедуру – добавити елемент у множину S та процедуру – вилучити елемент із множини S.

Звернення до множини можливе тільки в цілому, до конкретного базового елемента множини звернутися неможливо.

При введенні базових елементів множини використовується допоміжна змінна базового тип . Значення базового елемента вводиться і присвоюється допоміжній змінній , а потім змінна за допомогою процедури або операції об’єднання добавляється до множини. Наприклад,

Var S: set of byte;

i, k: bye;

begin

S:=[]; {очистка множини}

.............

for i:=0 to 3 do

begin

x:=StrToInt(Memo1.Lines[i]);

S:=S+[x];

або

Include(S,x);

end;

.............

end.

Якщо Memo1 мстить числа 2, 5, 4, 9, то буде створена множина із базових елементів {2, 5, 4, 9}.

Для виведення базових елементів множини потрібно перебрати всі значення базового типу і перевірити чи це значення належить множині. Якщо значення належить множині, то його слід вивести. Наприклад, виведемо базові елементи множини S із попереднього прикладу. Оскільки базовий тип byte приймає значення від 0 до 255, то і також буде змінюватися від 0 до 255

for i:=0 to 255 do

if i in S then

Memo1.Lines.Add(IntToStr(i));

В результаті будуть виведені за зростанням всі базові елементи множини S – 2, 4, 5, 9.





Дата публикования: 2014-11-03; Прочитано: 283 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.007 с)...