Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
as.doc
Скачиваний:
37
Добавлен:
24.04.2019
Размер:
2.25 Mб
Скачать

3.1. Поняття структури даних типу «масив»

Масив – послідовність елементів одного типу, який називається базовим. Математичною мовою масив – це функція з обмеженою областю визначення. Структура масивів однорідна. Для виділення окремого компонента масиву використається індекс. Індекс – це значення спеціального типу, визначеного як тип індексу певного масиву. Тому на логічному рівні СД типу «масив» можна записати так:

type A = array [T1] of T2,

де Т1 – базовий тип масиву, Т2 – тип індексу.

Якщо DT1 – множина значень елементів типу Т1, DТ2 – множина значень елементів типу Т2, то А: DT1DТ2 (відображення).

Кардинальне число Car(T) структури типу Т – це множина значень, які може приймати задана структура типу Т. Кардинальне число характеризує об’єм пам’яті, необхідний такій структурі.

Для масиву A: Car(A) = [Car(T2)] Car(T1).

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

У переважній більшості мов програмування масив є стандартною вбудованою структурою даних.

Отже, з вищенаведеного сформулюємо такі властивості масиву:

  • усі елементи масиву мають той самий тип;

  • кожний компонент має свій номер у послідовності (індекс) і відрізняється ним від інших елементів (ідентифікується);

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

  • можливість опрацювання компонента, або його доступність, не залежить від його місця в послідовності (елементи рівнодоступні).

3.2. Набір допустимих операцій для сд типу «масив»

Над масивом можна виконувати такі операції:

1) Операція доступу (доступ до елементів масиву – прямий; від розміру структури операція не залежить).

2) Операція присвоювання.

3) Операція ініціалізації (визначення початкових умов).

На фізичному рівні СД типу «масив» є неперервною ділянкою пам’яті елементів однакового об’єму. Ділянка пам’яті, необхідна для одного елемента, називається слотом.

Var B: A {визначаємо змінну В як змінну типу «масив А»};

p i g, де p – індекс першого елемента масиву, g – індекс останнього елемента масиву, i – індекс елемента.

3.3. Дескриптор сд типу «масив»

Нерідко фізичній структурі ставиться у відповідність дескриптор (заголовок), що містить загальні відомості про задану фізичну структуру. Дескриптор також зберігається, як і структура, в пам’яті. Загалом дескриптор являє собою структуру типу «запис».

Стосовно до СД типу «масив», дескриптор містить такі компоненти: ім’я масиву, умовне позначення заданої структури, адресу першого елемента масиву, індекси нижньої й верхньої границь масиву, тип елемента масиву, розмір слота.

Наприклад, для наступного описування масиву:

var A: array [-5 .. 4] of Char

дескриптор буде виглядати так:

V

A

Adr (A[-5])

-5

4

Char

Для СД типу «масив» розмір дескриптора не залежить від розмірності масиву. При кожній операції доступу використовується вся інформація дескриптора. Наприклад, поля границі зміни індексу використовуються при обробці виняткових операцій.

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