
Контрольні питання
Дати означення масиву даних.
Дати означення регулярного типу (типу масива).
Як визначається кардинальне число регулярного типу?
Якими є головні характеристики масивів даних?
Яким є принцип збереження масиву в оперативній пам’яті?
Як здійснюється доступ до елементів одновимірного масиву?
Чи може список ініціалізації масиву містити більше (менше) значень, ніж вказано в оголошенні масиву?
Які базові операції обробки одновимірних масивів?
Як повернути масив із функції?
Класифікація методів сортування масивів.
Різниця між методами внутрішнього і зовнішнього сортування.
Сутність методу сортування обміном (бульбашкове сортування).
Сутність методу сортування вставкою (включенням).
Сутність методу сортування вибором.
Багатовимірні масиви
Мета роботи - опанувати технологію використання двовимірних масивів даних (матриць), навчитися розробляти алгоритми та програми із застосуванням матриць.
Теоретичні відомостi
У загальному випадку масив може містити компоненти будь-якого типу, зокрема, також масиви. Формат оголошення такого масиву у С/С++:
тип ім'я[кількість_1][кількість_2].
Такий масив можна трактувати подвійно: як масив, що складається з декількох масивів, або як один двовимірний масив (матрицю).
Наприклад,
int a[2][3]; //a[0][0] a[0][1] a[0][2] a[1][0] a[1][1] a[1][2]
Доступ до окремого елемента матриці, зазвичай, здійснюється операцією індексування за наступним форматом:
ім'я_матриці[номер_рядка][номер_стовпця].
Наприклад, А[5][19].
Як індекси при звертанні до елементів матриць можуть використовуватися константи і довільні вирази, що включають змінні порядкових типів.
В оперативній пам’яті матриця зберігається як безперервна послідовність елементів. При цьому компонента з найменшим значенням індексу розміщується за найменшою адресою (самий правий індекс елементів багатовимірних масивів зростає найпершим). Наприклад, елементи матриці
int A[5][4];
в оперативній пам’яті будуть розміщені у такий спосіб:
A[0][0],...,A[0][3],A[1][0],...,A[1][3],...,A[4][0],...,A[4][3].
Обробка елементів матриць виконується у вкладених циклах for.
Як і одновимірні масиви, матриці можуть бути параметрами підпрограм. Передача такого параметра-матриці у функцію здійснюється тільки за адресою. Можливі формати оголошення параметра-матриці:
тип ім'я_матриці[номер_рядка][номер_стовпця];
тип ім'я_матриці[][номер_стовпця]2.
Перелік базових операцій над матрицями та їх елементами:
введення-виведення матриці, її ініціалізація;
створення нової матриці за заданим алгоритмом;
пошук елементів матриці за певним критерієм;
визначення, чи задовольняє матриця або окремі її елементи певній властивості;
виконання певних операцій над компонентами матриць (переставлення рядків і стовпців, множення матриць тощо).
Базові операції обробки матриць слід реалізовувати у вигляді функцій, які згодом можуть бути використані як «архітектурні блоки» при розв’язанні більш складних задач.