Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Теоретичний матеріал до теми.doc
Скачиваний:
1
Добавлен:
13.11.2019
Размер:
64.51 Кб
Скачать

Багатовимірні масиви

Особливістю мови С++ є несамовизначеність масивів, тому за іменем масиву неможливо довідатися його розмірність і розміри за кожним виміром. Крім того, у С++ багатовимірні масиви не визначені. Наприклад, якщо оголошений масив float d[3][4][5], те це не тривимірний, а одномірний масив d, що включає три елементи, кожний з який має тип float [4][5]. У свою чергу, кожний з чотирьох елементів типу float [5]. І, відповідно, кожний з цих елементів є масивом з п'яти елементів типу float. Ці особливості ускладнюють використання масивів як параметрів функцій.

При передачі масивів як параметрів через заголовок функції варто враховувати, що передавати масиви можна тільки з однією невизначеною границею мірності (ця мірність повинна бути самою лівою).

Приклади Приклад 1

Двовимірний масив як параметр функції.

Нехай потрібно скласти програму з функцією, що підраховує суму елементів матриці.

#include <iostream.h>

float summa(int n,float a[][3])

{

float s=0;

for(int i=0;i<n;i++)

for(int j=0;j<3;j++)

s=s+a[i][j];

return s;

}

void main()

{

float z[4][3]={0,1,2,3,4,5,6,7,7,6,5,4 };

cout<< "\n Сума елементів матриці дорівнює" << summa(4,z);

}

У результаті виконання програми на екран буде виведене повідомлення: “Сума елементів матриці дорівнює 50”.

Приклад 2

Допоміжний масив вказівників на масив як параметр функції.

Потрібно скласти програму з функцією, що повертає як результат мінімальний елемент матриці d розміром mxn.

#include <iostream.h>

float min(int m,int n,float *p[]);

void main()

{

float d[3][4]={1,2,-2,4,

5,0,-3,18,

-9,6,7,9};

float *r[]=

{

(float *) &d[0], (float *) &d[1],(float *) &d[2]

};

int m=3;

int n=4;

cout <<"\n Мінімальний елемент матриці дорівнює "<< min(m,n,r);

}

float min(int m,int n,float *p[])

{

float x=p[0][0];

for (int i=0;i<m;i++)

for (int j=0;j<n;j++)

if (x>p[i][j]) x=p[i][j];

return x;

}

У результаті виконання програми на екран буде виведене повідомлення: “Мінімальний елемент матриці дорівнює –9”.