Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Складні типи даних.doc
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
119.81 Кб
Скачать

9.2. Приклади програмування задач з використанням множини.

Приклад 9.1. Існують три множини символьного типу A, B і C, які задані своїми конструкторами: ['А', 'В', 'D', 'R', 'H']; ['R', 'A', 'H', 'D']; ['А', 'R']. Сформувати нову множину – D = (А∩B)U(A\B), перевірити, чи належить множина С множині D.

Програма 9.1. Операції над множинами.

PROGRAM P91 (INPUT, OUTPUT);

VAR

A, B, C, D: SET OF CHAR; {МНОЖИНИ}

X: CHAR; {СИМВОЛ}

BEGIN

A:=['А', 'В', 'D', 'R', 'М'];

B:=['R', 'A', 'H', 'D'];

C:=['А', 'R'];

{РОЗРАХУНОК І ДРУК МНОЖИНИ D}

D:=(A*B)+(A-B);

WRITE('МНОЖИНА D = ');

FOR X:='A' TO 'R' DO

ІF X ІN D ТНЕN WRITE(X);

WRITELN;

{ПЕРЕВІРКА ВКЛЮЧЕННЯ МНОЖИНИ C ДО D}

ІF C<=D ТНЕN WRITE('МНОЖИНA C НАЛЕЖИТЬ ДО МНОЖИНИ D')

ЕLSE WRITE('МНОЖИНA C НЕ НАЛЕЖИТЬ ДО МНОЖИНИ D')

END.

----------------------------------------------------------------------

МНОЖИНА D = ABDMR

МНОЖИНA C НАЛЕЖИТЬ ДО МНОЖИНИ D

----------------------------------------------------------------------

Для виведення на екран дисплея елементів нової множини використовується оператор циклу FOR, параметром циклу є символьна змінна X, яка приймає значення кожного символу латинського алфавіту від А до R включно (див. впорядкованість літер латинського алфавіту в додатку). Зверніть увагу на те, що в операторі циклу використовується не весь латинський алфавіт від А до Z, а тільки частина його. Це пов’язано з тим, що задані множини A, B, C не містять символів після літери R, але помилкою не буде, якщо кінцевим значенням параметра циклу взяти символ Z.

Приклад 9.2. З множини цілих чисел від 1 до 20 виділити:

– множину чисел, що діляться на 6 без залишку;

– множину чисел що діляться без залишку або на 2, або на 3.

Введемо позначення для наведеної нижче програми 10.2: N – розмірність множини; N2 – множина чисел, що діляться на 2; N3 – множина чисел, що діляться на 3; N6 – множина чисел, що діляться на 6; N23 – множина чисел, що діляться на 2 або 3; К – параметр циклу.

Програма 9.2. Знаходження множин кратних чисел.

PROGRAM P92 (INPUT, OUTPUT);

СОNST N=20; {РОЗМІРНІСТЬ МНОЖИНИ}

VAR

N2, N3, N6, N23: SET OF INTEGER;

К: INTEGER; {ПАРАМЕТР ЦИКЛУ}

BEGIN

N2:=[ ]; {ПОЧАТКОВЕ ЗНАЧЕННЯ N2}

N3:=[ ]; {ПОЧАТКОВЕ ЗНАЧЕННЯ N3}

FOR К:=1 TO N DO

BEGIN

ІF К МОD 2=0 ТНЕN N2:=N2+[К];

ІF К МОD 3=0 ТНЕN N3:=N3+[К]

END;

N6:=N2*N3;

N23:=N2+N3;

WRITELN('НА 6 ДІЛЯТЬСЯ ЧИСЛА: ');

FOR К:=1 TO N DO

ІF К ІN N6 ТНЕN WRITE(К:3);

WRITELN;

WRITELN('НА 2 АБО НА 3 ДІЛЯТЬСЯ ЧИСЛА: ');

FOR К:=1 TO N DO

ІF К ІN N23 ТНЕN WRITE(К:3)

END.

----------------------------------------------------------------------

НА 6 ДІЛЯТЬСЯ ЧИСЛА:

6 12 18

НА 2 АБО НА 3 ДІЛЯТЬСЯ ЧИСЛА:

2 3 4 6 8 9 10 12 14 15 16 18 20

----------------------------------------------------------------------

10. Записи

У попередніх розділах розглядались впорядковані (масиви) або невпорядковані (множини) дані однакового типу. Проте в житті найчастіше зустрічаються неоднорідні дані, прикладами можуть бути: календарна дата – номер дня місяця, назва місяця, номер року; відомість складання заліку студентами – прізвище та ініціали студента, оцінка; адреса – назва країни, назва місцевості, назва населеного пункту, назва вулиці тощо, номер будинку, номер приміщення. При цьому з’являється необхідність об’єднувати дані різного типу в одну групу. Для роботи з групою даних в мові Паскаль введено поняття запису.