Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
О.О.П / ооп / l_12.ppt
Скачиваний:
51
Добавлен:
30.05.2020
Размер:
781.82 Кб
Скачать

Двовимірні масиви

Лекція 12

План:

1.Основні визначення 2.Форми ініціалізації масиву 3.Матриці

4.Введення-виведення матриць 5.Перебір елементів матриці

Двовимірні масиви. Визначення

Тип_елементу ім‘я_масиву [розмір] [розмір];

задаються вказівкою кожного виміру в

квадратних дужках: int matr [3][6];

- це опис двовимірного масиву з 3 рядків по 6 стовпців

a[0][0] a[0][1] a[0][2] a[0][3] a[0][4] a[0][5]

a[1][0] a[1][1] a[1][2] a[1][3] a[1][4] a[1][5]

a[2][0] a[2][1] a[2][2] a[2][3] a[2][4] a[2][5]

2 розмірності

double А [3] [6];

розмір 3 (перша розмірність) и 6 (друга розмірність)

3

Багатовимірні масиви. Визначення

У С++, за визначенням, багатовимірні масиви як такі не існують.

Масив з декількома індексами, наприклад double prim [6] [4] [2]

є одновимірний масив з ім'ям prim, що включає 6 елементів, кожен з яких має типа double [4] [2].

Кожен з елементів масиву double [4] [2] є одновимірний масив з чотирьох елементів типа double [2].

І, нарешті, кожен з цих елементів є масивом з двох елементів типа double.

int M [10][2][3] - тривимірний масив:

M[0], M[9] - одновимірні масиви двовимірних масивів (матриць) розміру 2 х 3

( 2 х 3 х sizeof (int) байтів);

M[0][0], M[0][1] - одновимірні масиви векторів розміру 3 (3 х sizeof (int) байтів);

M[0][1][0], M[0][1][1] - значення типа int (sizeof (int) байтів).

де, m - кількість рядків двовимірного масиву; n - кількість стовпців двовимірного масиву; m * n - кількість елементів масиву.

Тривимірні масиви. Визначення

int M [10][2][3] - тривимірний масив: M[0], M[9] - одновимірні масиви двовимірних масивів (матриць) розміру

2 х 3 ( 2 х 3 х sizeof (int) байтів); M[0][0], M[0][1] - одновимірні масиви векторів розміру 3 (3 х sizeof (int) байтів);

M[0][1][0], M[0][1][1] - значення типа int (sizeof (int) байтів).

6

У оголошенні двовимірного масиву, також як і в оголошенні одновимірного масиву, насамперед, потрібно вказати:

•тип даних;

•ім'я масиву.

1// синтаксис об’яви двовимірного масива 2/*тип даних*/ /*им’я масива*/[/*кількість строк*/]

[/*кількість стовбців*/];

Після чого, в перших квадратних скобочках вказується кількість рядків двовимірного масиву, в других квадратних дужках - кількість стовпців двовимірного масиву. Двовимірний масив візуально відрізняється від одновимірного другою парою квадратних дужок. Розглянемо приклад оголошення двовимірного масиву. Допустимо нам необхідно оголосити двовимірний масив, з кількістю елементів, рівною 15. В такому разі двовимірний масив може мати три рядки і п'ять стовпців або п'ять рядків і три стовпці.

1// приклад об’яви двовимірного масиву

2int a[5][3];

а - ім'я цілочисельного масиву

· число в перших квадратних дужках вказує кількість рядків двовимірного масиву, в даному випадку їх 5;· число в других квадратних дужках вказує кількість стовпців двовимірного масиву, в даному випадку їх 3.

1// ініціалізація двовимірного масива:

2int a[5][3] = { {4, 7, 8}, {9, 66, -1}, {5, -5, 0}, {3, -3, 30}, {1, 1, 1} };

У даному масиві 5 рядків, 3 стовпці. після знаку привласнити ставляться загальні фігурні дужки, усередині яких ставиться стільки пар фігурних дужок, скільки має бути рядків в двовимірному масиві, причому ці дужки розділяються комами. У кожній парі фігурних дужок записувати через кому елементи двовимірного масиву. У всіх фігурних скобочках кількість елементів повинна збігатися.

Оскільки в масиві п'ять рядків, то і

внутрішніх пар дужок теж п'ять. У внутрішніх скобочках записані по три елементи, оскільки кількість стовпців - три. Графічно наш масив виглядатиме, як двовимірна таблиця (див. мал.).

У кожній комірці двовимірного масиву а показано значення, в нижньому правому кутку показана адреса даного вічка. Адресою комірки двовимірного масиву є ім'я масиву, номер рядка і номер стовпця.

Двовимірні масиви. Ініціалізація

Для доступу до елементу масиву вказуються його індекси:

matr [i] [j]

m [i] [j] [k]

безструктурна ініціалізація : int mass [3][2] = {1, 1, 0, 2, 1, 0};

int a [2][3] [4]= {1, 0, 0, 0, 2, 3, 0, 0, 4, 5, 6, 0, 1, 2, 0, 0,…………………….};

структурна ініціалізація:

int mass [ ] [2] = { {1,1}, {0, 2}, {1, 0} }; int array [2] [3] = { {1, 2, 3}, {2, 3, 4} };

Розташування в пам'яті: послідовно по рядкам, найправіший індекс зростає найпершим:

int array [10][3]:

array [0][0], array [0][1], array [0][2], array [1][0], array [1][1], array [1][2],

….., array [9][,0], array [9][1], array [9][2].

Характерним об'єктом програмування є двовимірні масиви (матриці). Часто розглядаються матриці спеціального вигляду – одиничні, діагональні, трикутні, розріджені і ін. Представлення матриці кожного з видів в програмі може бути різним; наприклад, діагональні матриці можуть

представлятися одновимірним масивом.