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

8.2. Двовимірні масиви

До цих пір ми розглядали масиви, кожен елемент яких містив тільки один індекс. Такі масиви зазвичай називають одновимірними. В математиці часто використовуються багатовимірні масиви, тобто масиви масивів. Найширше розповсюдження отримали двовимірні масиви, які інакше називаються матрицями. Наприклад, зображення цілих чисел послідовно в декількох рядках є матрицею:

5 4 3 6

2 8 1 7

4 3 9 5

Дана матриця має розмір 3 на 4, тобто вона складається з трьох рядків і чотирьох стовпців. Якщо усю матрицю позначити одним іменем, наприклад, А, то кожен елемент матриці позначається з двома індексами – А[I,J], де перший індекс I вказує на номер рядка (I = 1, 2, 3), другий індекс J – номер стовпця (J = 1, 2, 3, 4). Таку матрицю можна описати наступним чином (з використанням імені типу, наприклад, М):

1-й варіант опису:

TYPE М=ARRAY[1..3, 1..4] OF INTEGER;

VAR А: М;

– описується кожний тип індексу, потім вказується простий базовий тип елементів масиву INTEGER.

2-й варіант опису:

TYPE М=ARRAY[1..3] OF ARRAY[1..4] OF INTEGER;

VAR А: М;

– спочатку описується тип даних індексу [1..3], потім вказується складний базовий тип ARRAY[1..4] OF INTEGER, який в свою чергу містить опис типу другого індексу і простого базового типу INTEGER.

Якщо в програмі необхідно виділити окремі рядки матриці, то зручно ввести такий опис:

TYPE

М1=ARRAY[1..4] OF INTEGER;

М=ARRAY[1..3] OF М1;

VAR

А: М;

В: М1;

– тут спочатку описується тип одного рядка М1, а потім через тип рядка М1 – тип всієї матриці М. В розділі змінних вказується, що А є двовимірним масивом, тобто матрицею, а В – одновимірним масивом.

9. Складний тип даних – множини

В математиці під множиною розуміється деякий набір елементів. Наприклад, різноманіття фігур на площині (прямокутник, коло, ромб, квадрат і ін.). До множин застосовують наступні операції:

– об’єднання (С = АUВ) – кожний елемент множини С є елементом або множини А , або множини В;

– перетин (С = А∩В) – кожний елемент множини С є елементом множин А і В одночасно;

– різниця двох множин (С = А\В). Кожний елемент множини С є елементом множини А, але не є елементом множини В.

Рис . Операції над множинами: а – об’єднання; б – перетин; в – різниця двох множин.

А також перевірка множин на відношення одної до іншої:

– збіг (А = В) – кожний елемент множини А є елементом множини В і, навпаки, кожний елемент множини В є елементом множини А;

– належність (BЄA або AЭB) – кожний елемент множини B є елементом множини А.

Окремим випадком є належність окремого елементу до множини (xЄA).

Рис . Відношення множин: а – А і В збігаються; б – В входить (належить) до А; в – х належить А.

9.1. Множини в мові Паскаль

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

Множини повинні бути оголошені або в розділі змінних VAR, або з використанням розділу типів TYPE.

Оголошення множини в розділі змінних має вигляд:

VAR _ ім’я множини: SET _ OF _ базовий тип;

а з використанням розділу типів:

TYPE _ ім’я типу = SET _ OF _ базовий тип;

VAR _ ім’я множини: ім’я типу;

Наприклад:

VAR ПІДСИЛЮВАЧ: SET OF (РЕЗИСТОР, КОНДЕНСАТОР, ТРАНЗИСТОР, ТРАНСФОРМАТОР, ТУМБЛЕР, ДІОД);

або, якщо дана множина СХЕМА:

TYPE СХЕМА=SET OF (РЕЗИСТОР, КОНДЕНСАТОР, ТРАНЗИСТОР, ТРАНСФОРМАТОР, ТУМБЛЕР, ДІОД);

VAR ПІДСИЛЮВАЧ: СХЕМА;

або, якщо дана множина СХЕМА, елементами якої є дані типу РАДІОДЕТАЛЬ:

TYPE

РАДІОДЕТАЛЬ=(РЕЗИСТОР, КОНДЕНСАТОР, ТРАНЗИСТОР, ТРАНСФОРМАТОР, ТУМБЛЕР, ДІОД);

СХЕМА=SET OF РАДІОДЕТАЛЬ;

VAR ПІДСИЛЮВАЧ: СХЕМА;

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

Наприклад:

РАДІОДЕТАЛЬ:=[РЕЗИСТОР, КОНДЕНСАТОР, ТРАНЗИСТОР, ТРАНСФОРМАТОР, ТУМБЛЕР, ДІОД];

ФІГУРА:=[КОЛО, РОМБ, КВАДРАТ];

ЛІТЕРА:=[ 'А' , 'В', 'С' ];

ЦИФРА:=[1, 3, 2, 5];

A:=[ ]; {ПОРОЖНЯ МНОЖИНА}

В мові Паскаль операції над множинами мають вигляд:

Математичний запис

Запис на мові Паскаль

Опис

АUВ

А+В

об’єднання множин A і B

А∩В

А*В

перетин множин A і B

А\В

А-В

різниця множин A і B

А=В

А=В

множини A і B збігаються

А≠В

А<>В

множини A і B не збігаються

BЄA або AЭB

B<=A або A>=B

множина В є підмножиною множини А

xЄA

x_IN_A

значення x належить множині А

ІN – перевірка на належність елемента множині.