Вивчення роботи з масивами
Якщо з групою величин даного типу потрібно виконати одноманітні дії, їм дають одне ім'я, а розрізняють за порядковим номером
або індексy. визначає його місце серед інших елементів. Кінцева іменована послідовність однотипних величин називається масивом. Першому елементу в масиві зазвичай відповідає порядковий номер 0. Масиви можуть мати різні розміри. Один масив може складатися з трьох елементів, інший - з сорока, третій з шести. Масив може не мати елементів взагалі.
Одномірні масиви - найпростіший варіант масиву. Так як елементи масиву займають безперервний ділянку пам'яті, то одновимірний
масив є просто послідовність осередків пам'яті, розміру достатнього, щоб розмістити всі елементи.
У більшості випадків це двовимірні або тривимірні масиви. Оголошуючи такі масиви в квадратних дужках потрібно вказати число
елементів в кожній розмірності, починаючи з першої:
Тут оголошено двовимірний статичний масив цілих чисел з п'ятдесяти елементів по п'ять у кожному рядку.
При ініціалізації багатовимірного масиву, він надається або як масив з масивів або задається загальний список елементів в тому порядку, в якому вони розташовуються в пам'яті. Видаляються динамічні масиви завжди однаково.
Слід пам'ятати, що елементи масиву можуть бути практично будь-якого типу, а не тільки стандартного.
Наступна програма показує приклад використання масиву. У ній на вхід подається деяка фіксованої довжини послідовність цілих (можна і не цілих) чисел, а на виході видається їх сума.
int MyArray [n]; // оголошується масив з 10 цілих чисел
int i = 0; // Лічильник циклу
int s = 0; // Початкове значення суми
cout <<"MyArray["<
cin >> MyArray [i]; // Ввести елемент
s + = MyArray [i]; // Додати до суми
i ++; // Збільшити лічильник на одиницю
cout<<"s="<
Операції з масивами
Типовими операціями при роботі з масивами є:
- пошук максимального або мінімального елемента масиву;
- пошук заданого елемента масиву;
• тип - це тип даних ВСІХ змінних масиву, тобто не можна щоб в масиві були змінні різного типу!
• ім'я - ім'я яке ці змінні об'єднує і за яким вони доступні.
• розмір масиву - кількість елементів в масиві. Доступ до елементів масиву здійснюється через ім'я масиву разом з індексом елемента, розташованого в квадратних дужках за ім'ям масиву.
Елементи масиву індексуються з нуля, відповідно індекс 0 еквівалентний першому елементу масиву, індекс 1 - другого і так далі.
• Масиви инициализируются так само як і звичайні змінні: кожному елементу масиву ставиться у відповідність значення:
int a [3] =.
Якщо ініціалізація більше ніж розмірність, то помилка.
Якщо при ініціалізації число елементів не відповідає кількості елементів в списку ініціалізації, то, або масив доповнюється нульовими значеннями, або частина елементів в кінці списку ініціалізації не використовується.
Масиви в мові С ++ можуть бути статичними або динамічними.
Створюються за допомогою операції new при цьому необхідно вказати тип і розмірність. Динамічні масиви не можна при створенні форматувати і вони не обнуляються.
Перевага таких масивів полягає в тому, що розмірність може бути змінної, тобто обсяг пам'яті виділяється під масив
визначається на етапі виконання програми. Звільнення динамічної пам'яті delete [];
Багатовимірний динамічний масив можна оголосити, наприклад таким чином:
int ** MyArray = (int **) new int [N1] [10];
або, наприклад як масив масиву:
cout <<" Введите количество строк и столбцов :";
cin >> N1 >> N2;
int ** MyArray = new int * [N1];
for (int i = 0; i MyArray [i] = new int [N2]; Наступна програма є модифікацією попередньої, і в ній використовується динамічний масив. cout<<"Enter number of elements of a file: ";// Введите число //элементов cin >> N; // Введення числа елементів int * MyArray = new int [N]; // Створення масиву int i = 0; // Лічильник циклу int S = 0; // Початкове значення суми while (i S + = MyArray [i]; // Додати до суми i ++; // Збільшити лічильник на одиницю delete [] MyArray; // Видалення масиву і звільнення пам'яті Пам'ять під масив виділяється одним блоком, елементи в ній розміщуються поспіль, від початку до кінця. Ім'я масиву вказує на початок цього блоку (і таким чином є покажчиком). У порівнянні з масивами Basic або Pascal масиви С ++ мають особливості: • нумерація елементів завжди починається з нуля; • якщо при ініціалізації число елементів не відповідає кількості елементів в списку ініціалізації, то, або масив доповнюється нульовими значеннями, або частина елементів в кінці списку ініціалізації не використовується.