Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
posibnik_paskal.pdf
Скачиваний:
230
Добавлен:
11.02.2016
Размер:
2.43 Mб
Скачать

«Turbo Pascal »

Значенко О.П.

ТЕМА 10. МНОЖИНИ В МОВІ ПАСКАЛЬ

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

еодною з мов програмування , де існує відповідний тип даних.

Вматематиці множиною називається будь-яку сукупність об’єктів (наприклад множина чисел 1..10 ). Математична множина має довільну кількість елементів.

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

Значення елементів записують через кому в квадратних дужках. Так як у множині допускається тільки такі елементи, порядкові значення яких не виходять за межі відрізка 0..255 то для цілочислових множин це означає, що в них можуть знаходитися числа не менше 0 та не більше 255. Отже від’ємні числа, як елементи множин у Турбо Паскалі недопустимі. За допомогою множин розв'язують задачі, де потрібно визначити, чи деякий елемент належить певному набору даних чи ні тощо.

Основні правила роботи з множинами

Постійні множини в Паскалі задаються перерахуванням елементів: [1,2,3], [‘A’, ‘B’, ‘C’, ‘D’], [1..N]

Порядок розташування елементів у множині значення не має: [1, 2, 3, 4] і [2, 4, 1, 3] - це одна й та ж множина.

Множина без елементів називається порожньою: [ ].

Множина може складатися лише із різних елементів.

Загальний вигляд конструкції опису типу множини такий:

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

Базовим типом може бути символьний, перерахований, діапазонний тип даних потужністю до 255 елементів.

55

«Turbo Pascal » Значенко О.П.

Приклад. Задамо сталу множину а, опишемо тип множини symbol і оголосимо змінні number, s та у відповідних типів:

const a = [1,2,5,9]; {Задаємо сталу множину}

type symbol = set of char;{Описуємо множину символів} var number : set of 1..100; {Оголошуємо змінні number, s, y} s : symbol; {відповідних множинних типів}

у : set of (green, black, red);

Операції над множинами

Для множин існують операції об'єднання, перетину, різниці, порівняння, а також операція визначення, чи деякий елемент належить множині.

Операція обєднання (+) Результатом даної операції буде множина, яка складається з елементів які належать хоча б одній з множин.

a+ b (об'єднання)— множина, яка містить усі елементи множин а і b без повторень.

Перетин множин (*) – Результатом буде множина яка складається з елементів які належать кожній з множин.

a*b (перетин) - множина, яка містить елементи, які є спільними для множин

а і b.

Різниця двох множин ( - ) – множина, яка складається з елементів

56

«Turbo Pascal »

Значенко О.П.

першої множини, які не належать другій.

a - b (різниця) - множина, яка складається з елементів, які є у множині а, але немає у множині b;

Порівняння (=, <> , <=, >= ) — результатом порівняння є дане логічного

типу.

Приклад.

Нехай задано множини а=[1,2,3,4,5,6] та b=[1,2,3,4]. Тоді а +b=[1,2,3,4,5,6]; a-b=[5,6]; а*Ь=[1,2,3,4]. Порівняння цих множин дає такі результати: а=b, — false; a<>b — true; a>=b - true; a<=b — false.

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

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

Типи множин, з яких складається вираз, мають збігатися.

Приклад.

Оголошеним вище змінним можна надати таких значень: 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:=[ ], де [ ] — порожня множина.

Пошук даних у множині

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

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, ' у множині немає');

57

«Turbo Pascal »

Значенко О.П.

Приклад. Менеджер комп'ютерного магазину-салону регулярно отримує інформацію про техніку, яка надходять на склади А, В, С. Українським назвам виробів поставлено у відповідність номери 1—9 та англійські назви tl-t9. Англійські назви описані за допомогою перерахованого типу tovary. Скласти програму, яка дає інформацію про вироби, що є на складах А або В, але немає на складі С.

program Sklady; uses Crt;

type tovary = (tl, t2, t3, t4, t5, t6, t7, t8, t9);{це інформація про наявність товарів на складах}

const A: set of tovary = [tl, t3, t4, t5, t6, t9];

B:set of tovary = [tl, t2, t3, t5, t6, t8, t9];

C:set of tovary = [t3, t5, t6, t8];

var tovar : tovary; begin

clrscr;

Writeln(‘y нас є такі товари:'); for tovar := tl to t9 do

if tovar in A + В - C then case ord (tovar)+l 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 та 5РМ');

6: writeln ('Сканер Epson GT9000');

7: writeln('Дисковід CD-ROM');

8: writeln('Дискети Verbatim 1.44M6');

9:writeln('Дискети Polaroid 1.44M6') end;

writeln('MH чекаємо на вас!');

end.

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

58

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]