Масиви даних

Масив — це структурована сукупність фіксованої кількості елементів одного типу, доступ до яких здійснюється за допомогою індексів. Елементи масиву називаються індекс­ними змінними. За кількістю індексів, які треба вказати для доступу до окремого елемента масиву, розрізнюють одновимірні, двовимірні, …, n-вимірні масиви. Вимоги до індексів різні в різних алгоритмічних мовах. У Паскалі індекс — це змінна порядкового типу.
Опис масиву містить ім’я масиву (ідентифікатор), принцип індексації елементів (діапазон зміни індексів), тип елементів масиву.
VAR <ім’я_масиву>: ARRAY <діапазони зміни індексів> OF <тип_даних>;
Масив називається одновимірним (лінійна таблиця), якщо для доступу до його елементів достатньо одного індексу.
Наприклад, одновимірний масив із 8 дійсних чисел у Паскалі можна оголосити таким чином:
• VAR Name: ARRAY [1..8] OF real;
• Const N=8;
VAR Name: ARRAY [1..N] OF real;
• TYPE MASSIV = ARRAY [1..8] OF real;
VAR Name: MASSIV;
Масив називається двовимірним (матриця), якщо для доступу до його елементів необхідно вказати значення двох індексів. Перший індекс вказує номер рядка, а другий — номер стовпця в цьому рядку.
При розподілі пам’яті в описовій частині програми під масив резервується стільки місця, скільки передбачає вказана кількість елементів масиву, враховуючи тип елементів. Межі зміни індексів повинні бути сталими величинами, а не змінними, інакше буде невідомо, скільки місця необхідно відвести в пам’яті для такого масиву.
У пам’яті комп’ютера елементи одновимірних масивів розташовано послідовно. Двовимірні масиви розташовуються таким чином: спочатку елементи першого рядка, потім другого і т. д.
Роботу з масивами можна умовно поділити на три частини:
• формування масиву;
• опрацювання масиву;
• виведення масиву.
Формування масиву. Формування значень елементів масиву можна виконувати у такий спосіб:
• уведення значень елементів масиву з клавіатури або з файла;
• формування значень випадковим чином, з використанням функції-генератора випадкових чисел Random;
• обчислення значень елементів масиву за формулою.
Опрацювання масиву. Класичними задачами для роботи з масивами можна назвати:
• пошук заданого елемента в масиві;
• знаходження суми (добутку) елементів масиву;
• пошук максимального (мінімального) елемента в масиві;
• упорядкування масиву за ознакою (наприклад за зростанням або спаданням та ін.).
Одним із найскладніших завдань є впорядкування елементів масиву. Для розв’язання цієї задачі існує декілька алгоритмів.
Сортування вибором:
1. Установити номер найбільшого елемента масиву.
2. Поміняти місцями найбільший і останній елементи.
3. Повторити 1 і 2 над остачею масиву (без останнього елемента).
Застосовувати цей метод до елементів масиву, що залишилися, доки залишок не скоротиться до одного елемента.
Аналогічно сортування вибором можна застосувати до найменшого елемента, міняючи його з першим. У результаті все одно отримаємо зростаючу (незменшувану) послідовність елементів масиву.
Обмінне сортування («бульбашка»):
1. Порівняти два поруч розташованих елементи.
2. Якщо пара порушує потрібний порядок слідування, елементи міняють місцями.
Порівняння відбувається до кінця масиву. Обмін здійснюється доти, поки прохід по масиву не викличе жодного обміну.
Існують й інші методи сортування масивів: метод уставки, швидке сортування тощо.
Виведення масиву. Виведення елементів одновимірного масиву на екран можна виконувати в рядок:
For i:=1 to n do Write (mas[i]);
або у стовпчик:
For i:=1 to n do Writeln (mas[i]).
Для виведення елементів двовимірного масиву у вигляді двовимірної таблиці (матриці) можна використовувати таку конструкцію:
For i:=1 to n do
Begin
For j:=1 to m do
Write (mas[i,j]);
Writeln;
End.