![]() |
Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | |
|
Множина – це структурований тип даних, елементами якого є всі підмножини, побудовані на основі елементів базового типу.
Наприклад, множина, базовими для якої є елементи , складається з підмножин
,
де – порожня множина.
Всі елементи множини різні й невпорядковані, тому множини і
– еквівалентні. Кількість елементів базового типу, на основі якого конструюється множинний тип, називається потужністю і не може перевищувати
.
У програмі опис множини має вигляд
<ім’я типу> = 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; Прочитано: 303 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!