
Сообщение от
M128K145
Обьясни:
Лабораторная работа №16
Задание: знайти мінімальний елемент матриці. Роботу виконати за допомогою двомірного статичного масиву.
Лабораторная работа №19
Задание: знайти кількість нульових елементів матриці і замінити їх на середнє арифметичне всієї матрицї. Завдання виконати використовуючи динамічний двовимірний масив.
Такие номера лаб и задания к ним или нет?
Лабораторная работа №16
Тема: Програмування операцій з двохмірними масивами.
Завдання: Згідно з варіанту індивідуального завдання скласти і виконати програму, задавши значення елементів масиву самостійно. Розв’язати задачу двома способами:
а) задати значення елементів масиву під час об’єднання змінних;
б) значення елементів масиву ввести з клавіатури.
Теоретичні відомості
Багатовимірні масиви задаються вказівкою кожного виміру в квадратних дужках, наприклад, оператор
int matr [6][8];
задає опис двовимірного масиву з 6 рядків і 8 стовпців. У пам’яті такий масив розташовується в послідовних комірках построчно. Багатомірні масиви розміщаються так, що при переході елементу швидше всього змінюється останній індекс. Для доступу до елемента багатомірного масиву указуються всі його індекси, наприклад, matr [i][j].
При ініціалізації багатомірного масиву він представляється або як масив з масивів, при цьому кожен масив заклечається у свої фігурні дужки (у цьому випадку ліву розмірність при описі можна не вказувати), або задається загальний список елементів в тому порядку, у якому елементи розташовуються в пам’яті:
int mass2[][]={{1,1},{0,2},{1,0}};
int mass2[3][2]={1,1,0,2,1,0}
Завдання: У матриці A(mxn) знайти кількість нульових елементів та замінити їх на середнє значення матриці.
ЛАБОРАТОРНА РОБОТА №19
Тема: Програмування операцій динамічні двомірні масиви.
В динамічній області пам’яті можна створювати двомірні масиви за допомогою операції new чи функції malloc. При виділенні пам’яті відразу ж під весь масив кількість рядків (най лівішу розмірність) можна задавати з допомогою змінної чи виразу, а кількість стовбців повинна бути константним виразом, тобто явно визначена до виконання програми. Після слова new записується тип створює мого масиву, а потім – його розмірність в квадратних дужках, наприклад:
int n;
const int m=5;
cin>>n;
int (*a)[m] = new int [n][m]; //1
int **b = (int **) new int [n][m]; //2
В цьому фрагменті показується два способи створення динамічного масиву. В операторі 1 адреса початку виділеної за допомогою new ділянки пам’яті присвоюється змінній a, визначеної як вказівник на масив з m елементів типу int. Саме такий тип значення повертаю в даному випадку операція new. Скобки необхідні, оскільки без них конструкція інтерпретувалася б як масив вказівників. Всього виділяється n елементів. В операторі 2 адреса початку виділеної ділянки пам’яті присвоюється змінній b, яка описана як «вказівник на вказівник на int», тому перед присвоєнням необхідно виконати переведення типу.
По стандарту, в цьому випадку рекомендується застосовувати іншу операцію переведення типу:
int **b = reinterpret_cast <int **> (new int [n][m]);
Звернення до елементів динамічних масивів виконується так само, як і до елементів статичних масивів, за допомогою конструкції виду а[i][j].
Завдання: У матриці A(mxn) знайти кількість нульових елементів та замінити їх на середнє значення матриці.