Вивчення роботи з масивами

Якщо з групою величин даного типу потрібно виконати одноманітні дії, їм дають одне ім'я, а розрізняють за порядковим номером

або індекс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 масиви С ++ мають особливості:

• нумерація елементів завжди починається з нуля;

• якщо при ініціалізації число елементів не відповідає кількості елементів в списку ініціалізації, то, або масив доповнюється нульовими значеннями, або частина елементів в кінці списку ініціалізації не використовується.