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

8. Складний тип даних – масиви

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

В математиці, економіці, інформатиці часто використовуються впорядковані набори даних (наприклад, послідовності чисел, таблиці, списки прізвищ). Для їх обробки і вводять поняття масиву.

8.1. Одновимірні масиви

Під масивом розуміємо сукупність кінцевого числа даних одного типу. Масив позначається одним ім’ям. Так, всю сукупність дійсних чисел

1.6, 14.9, -5.0, 8.5, 0.46

– можна вважати масивом і позначати одним ім’ям, наприклад А. Кожен елемент масиву позначається іменем масиву з індексом. Елементи масиву впорядковані за значенням індексу.

В математиці, як правило, індекс або вміщується в круглі дужки, або вказується нижче імені масиву, наприклад: А(1), А(2), А(3), А(4), А(5) або А1, А2, А3, А4, А5 або в загальному вигляді Аі, де і = 1, 2, 3, …, n.

В мові Паскаль індекс міститься в квадратних дужках. Для розглянутого прикладу елементами масиву А є А[1] = 1.6, А[2] = 14.9, А[3] = -5.0, А[4] = 8.5, А[5] = 0.46.

Якщо в програмі використовується масив то він повинен бути описаний або в розділі змінних VAR, або в розділі типів TYPE.

Форма опису масиву в розділі змінних VAR має вигляд:

VAR _ ім’я масиву: ARRAY[t1] OF _ t2,

де ARRAY (масив) і OF (із) – службові слова; t1 – тип індексу, в якості якого може бути будь який простий тип, крім стандартних типів REAL та INTEGER; t2 – тип елементів масиву допустимий на мові Паскаль.

Для попереднього прикладу опис масиву має вигляд:

VAR А: ARRAY[1..5] OF REAL;

де А – ім’я масиву, елементи якого мають базовий тип REAL; тип індексу – обмежений від 1 до 5.

Приклади опису масивів:

VAR

MASSIV: ARRAY[1..N] OF REAL;

РІК: ARRAY[СІЧЕНЬ..ГРУДЕНЬ] OF INTEGER;

L: ARRAY[РЯДОК] OF BOOLEAN;

M1: ARRAY[CHAR] OF КОЛО;

Якщо декілька масивів мають однаковий тип індексів і однаковий базовий тип, то допускається в описі об’єднувати масиви у список, наприклад:

VAR А, B, C: ARRAY[1..50] OF REAL;

Тут оголошено списком три масиви дійсних чисел А, B, C дійсних чисел, кожний з яких містить по 50 елементів (від 1 до 50):

А[1], А[2], А[3],…, А[50];

B[1], B[2], B[3],…, B[50];

C[1], C[2], C[3],…, C[50].

Неможна плутати поняття “індекс” і “тип індексу”: тип індексу використовується тільки в розділі опису масиву, а індекс вказується в розділі операторів для позначення конкретних елементів масиву, при цьому індекс повинен бути того ж типу, що й опис типу індексу.

У якості індексу може бути вираз, окремим випадком якого є константа або змінна. Елемент масиву інакше називається змінною з індексом. На відміну від неї змінна без індексу називається простою змінною.

Елементи масиву можуть стояти як ліворуч оператора присвоювання, так і у виразах. Над елементами масиву можна робити ті операції, які допустимі для даних його базового типу. Якщо базовим типом є INTEGER, то допустимі всі операції над даними цілого типу, включаючи і стандартні функції. Приклади використання елементів масиву в розділі операторів:

B[5]:=B[3]+1;

SUM:=SUM-C[K];

P1:=A[2*I+1];

Для введення і виведення числових значень масиву використовуються цикли. Наприклад, цикл

FOR I:=1 TO 5 DO READ(A[I]);

– організує введення п’яти значень елементів масиву А: А[1], А[2], …, А[5], а цикл:

FOR I:=1 TO 5 DO WRITE(A[I]);

– виведення дев’яти значень елементів того ж масиву.

В мові Паскаль крім явного опису масивів у розділі змінних існує друга форма опису, яка складається з двох етапів: спочатку в розділі опису типів TYPE вказується тип масиву, потім у розділі опису змінних VAR перелічуються масиви, які належать до вказаного типу.

Введення типа масиву збільшує розділ описів, але у той же час спрощує налагодження програми та утримує від абсурдних помилок, таких, як складання ЯБЛУК з ПРИСКОРЕННЯМ ВІЛЬНОГО ПАДІННЯ.

Зазначення типів у розділі описів допомагає досягнути логічної якості програми і є добрим стилем програмування. Форма запису масиву має вигляд:

TYPE _ ім’я типу = ARRAY[t1] OF _ t2;

VAR _ ім’я масиву: ім’я типу;

Наприклад, в програмі використовується масив А, який складається з 10 елементів дійсного типу. Позначимо тип масиву ім’ям MASSIV. Тоді опис масиву можна виконати наступним чином:

TYPE MASSIV=ARRAY[1..10] OF REAL;

VAR А: MASSIV;

Якщо в цій програмі декілька масивів, наприклад, В, С, D мають той самий тип (тобто тип MASSIV), то зміниться тільки розділ змінних:

VAR А,В,С,D: MASSIV;

Слід зазначити, що масиви А, В, С, D використовуються в розділі операторів програми. Тип масиву MASSIV введений формально тільки в розділі описів і ніде в програмі не вказується та не оброблюється.