Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Множини. Структуровані типи даних.
Структуровані типи даних. Множина – це структурований тип даних для представлення набору деяких елементів як одного цілого. Область значень множини є набір усіх можливих підмножин, складених із її елементів. Всі елементи множини різні й невпорядковані, тому і – еквівалентні. Кількість елементів множини називається потужністю і не перевищує . У програмі опис множини має вигляд < ім’я типу> = set of < базовий тип>; де < ім’я типу> – ідентифікатор, set, of – зарезервовані слова (множина, із), < базовий тип> – будь-який порядковий тип крім Word, Integer, LongInt. Множина задається за допомогою конструктора. Конструктор – це список констант або виразів базового типу, а також тип-діапазон базового типу. Над множинами визначені такі операції: · – перевірка еквівалентності; результат , якщо множини еквівалентні, інакше ; · – перевірка нееквівалентності; результат , якщо множини нееквівалентні, інакше ; · – перевірка входження; результат , якщо множина включає множину , інакше ; · – перевірка входження; результат , якщо множина включає множину , інакше ; · – перевірка належності; результат , якщо елемент міститься у множині , інакше ; · – перетин множин; результат – множина спільних елементів і ; · – об’єднання множин; результат – множина елементів доповнена тими елементами , яких немає в ; · – різниця множин; результат – множина елементів , яких немає у . Окрім зазначених операцій можна використовувати процедуру – включення елемента у множину S та процедуру – виключення елемента із множини S. Приклад. Задано натуральне число . Розробити програму, яка друкує у зростаючому порядку всі цифри, які входять в це число, які не входять в це число і які входять в це число більше одного разу. Для побудови згаданих множин будемо виділяти цифри у заданому числі. Для цього будемо послідовно ділити це число за модулем 10 (операція mod) і ділити націло на 10 (операція div). Остачі від ділення за модулем 10 будуть цифрами цього числа. Будемо поміщати ці цифри у множину s1. Якщо така цифра вже є в множині s1, то будемо їх поміщати у множину цифр, що повторюються s3. Множину s2, із цифр, яких немає в числі, отримаємо як різницю множини константи всіх цифр c і множини s1. Програма у консольному режимі роботи має вигляд:
Program LABR6_1; {$APPTYPE CONSOLE} uses Sysutils; CONST c=[0..9]; VAR n, i, k: integer; s1, s2, s3: set of 0..9; BEGIN {Введення початкових даних} writeln (‘Введіть число n’); readln(n); s1: =[]; {Множина цифр, що містяться в числі} s2: =[]; {Множина цифр, що не містяться в числі} s3: =[]; {Множина цифр, що повторюються} i: =n; k: =i mod 10; while i< > 0 do begin if k in s1 then s3: =s3+[k]; s1: =s1+[k]; i: =i div 10; k: =i mod 10; end; s2: =c-s1; writeln(‘Множина цифр, що містяться в числі: ’); for i: =0 to 9 do if i in s1 then write(i, ' '); writeln(‘Множина цифр, що не містяться в числі: ’); for i: =0 to 9 do if i in s2 then write(i, ' '); writeln(‘Множина цифр, що повторюються: ’); for i: =0 to 9 do if i in s3 then write(i, ' '); readln; END.
|