русс | укр

Мови програмуванняВідео уроки php mysqlПаскальСіАсемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование


Linux Unix Алгоритмічні мови Архітектура мікроконтролерів Введення в розробку розподілених інформаційних систем Дискретна математика Інформаційне обслуговування користувачів Інформація та моделювання в управлінні виробництвом Комп'ютерна графіка Лекції


Множини


Дата додавання: 2014-11-28; переглядів: 913.


1. Множина (set) — це структурований тип даних, елементи якого скла­дають­ся зі скінченого набору до 255 даних одного типу, значення яких запи­сують через кому в квадратних дужках. За допомогою множин розв’язують задачі, де потрібно визначити, чи деякий елемент належить певному набору даних чи ні тощо.
Для множин існують операції об'єднання, перетину, різниці, порів­­няння, а також операція визна­чення, чи деякий елемент нале­жить множині.

  a + b (об'єднання) — множина, яка містить усі елементи мно­жин a i b без повторень; a * b (перетин) — множина, яка містить елементи, які є спіль­ними для множин a i b; a – b (різниця) — множина, яка складається з елементів, які є у множині а, але немає у множині b; =, <>, <=, >= (порівняння) — результатом порівняння є дане логічного типу.

Приклад. Нехай задано множини а=[1,2,3,4,5,6] та b=[1,2,3,4]. Тоді a+b=[1,2,3,4,5,6]; a–b=[5,6]; a*b=[1,2,3,4]. Порівняння цих множин дає такі результати: a=b — false; a<>b — true; a>=b – true; a<=b — false.
Порядок розташування елементів у множині значення не має: [1, 2, 3, 4] і [2, 4, 1, 3] – це одна й та ж множина. Множина без елементів називається порожньою: [ ].
Загальний вигляд конструкції опису типу множини такий:

type <назва типу>=set of <базовий тип>;

Базовим типом може бути символьний, перерахований, діапазон­ний тип даних потужністю до 255 елементів.
Приклад. Задамо сталу множину а, опишемо тип множини sym­bol і оголосимо змінні number, s та y відповідних типів:

  const a = [1,2,5,9]; type symbol = set of char; var number : set of 1..100; s : symbol; y : set of (green, black, red);   {Задаємо сталу множину} {Описуємо множину символів} {Оголошуємо змінні number, s, y} {відповідних множинних типів}

Значення змінній типу множина надають за допомо­гою команди присвоєнн

<ім'я змінної> := <вираз>;

Типи множин, з яких складається вираз, мають збі­га­тися.
Приклад. Оголошеним вище змінним можна надати таких значень:

  number := [ ]; number := [15, 12, 7, 99]; number := number + [1, 2, 6, 7] * [3, 4, 6, 7] – [4, 7]; s:=['s', 'g', 'T', '5', '$', '*']; s := ['a', 'b', 'd'] * ['d'] + ['1', 'r']; y:=[red]; y:=[ ], де [ ] — порожня множина.


2. Пошук даних у множині. Потрібний елемент у множині можна знайти за допомогою опера­ції in. Для визначення чи елемент належить множині використо­вують таку конструк­цію

if <елемент> in <множина> then <команда 1> else <команда 2>;

Приклад. Перевірити чи є число 25 у множині а=[21, 4, 12, 25] можна так:

  n := 25; а := [21, 4, 12, 25]; if n in a then write('Число ', n, ' є у множині') else write('Числа ', n, ' у множині немає');

Приклад. Складемо процедуру, яка визначає число n – кількість цифр у деякий множині символів s типу symbol.

  procedure Poshuk(s: symbol; var n : integer); var cyfra: '0'..'9'; begin n:=0; for cyfra:= '0' to '9' do if cyfra in s then n:=n+1 end;

Задача 1. Менеджер комп’ютерного магазину-салону регулярно отримує інформацію про техніку, яка надходять на склади A, B, C. Українським назвам виробів поставлено у відповідність номери 1–9 та англійські назви t1–t9. Англійські назви описані за допомогою перерахованого типу tovary. Скласти програму, яка дає інформацію про вироби, що є на складах A або B, але немає на складі C.

  program Sklady; uses Crt; type tovary = (t1, t2, t3, t4, t5, t6, t7, t8, t9); {це інформація про наявність товарів на складах} const A: set oftovary = [t1, t3, t4, t5, t6, t9]; B: set of tovary = [t1, t2, t3, t5, t6, t8, t9]; C: set of tovary = [t3, t5, t6, t8]; var tovar : tovary; begin clrscr; writeln('У нас є такі товари:'); for tovar := t1 to t9 do if tovar in A + B – C then case ord (tovar)+1 of 1 : writeln('Комп''ютери Dell Dimension'); 2 : writeln('Комп''ютери IBM PC 300'); 3 : writeln('Комп''ютери Celebris XL, GL'); 4 : writeln('Принтери Epson серій LX, LQ'); 5 : writeln('Принтери HP LJ 5L та 5PM'); 6 : writeln('Сканер Epson GT9000'); 7 : writeln('Дисковід CD-ROM'); 8 : writeln('Дискети Verbatim 1.44Мб'); 9 : writeln('Дискети Polaroid 1.44Мб') end; writeln; writeln('Ми чекаємо на вас!'); end.

Після виконання програми на екрані отримаємо:

  У нас є такі товари: Комп'ютери Dell Dimension Комп'ютери IBM PC 300 Принтери Epson серій LX, LQ Дискети Polaroid 1.44Мб Ми чекаємо на вас!

Завдання. Розв’яжіть задачу № 22 свого варіанта.


<== попередня лекція | наступна лекція ==>
Рядки (string) | Середовище Turbo Pascal 7.0


Онлайн система числення Калькулятор онлайн звичайний Науковий калькулятор онлайн