Виконати завдання(c++) використовуючи динамічну пам’ять та
вказівники на неї. До елементів масиву звертатись за допомогою вказівників
(Звернення до елементів через індекс (напр. A[i]) не дозволяється).
Задано масив дійсних чисел A(n× m), n ≤ 100, m ≤ 10. Розробити програму, яка
обчислює
Z = max (min(A[0], ... , A[m −1]), min(A[m], ... , A[2m −1]),...,
min(A[m(n −1)], ... , A[n⋅m −1])) .
У масиві n груп по m чисел. Максимальне значення шукається серед мінімальних
значень елементів у кожній групі.
Answers & Comments
Verified answer
Объяснение:
Ось код програми на C++, що вирішує цю задачу з використанням динамічної пам'яті та вказівників.
```c++
#include<iostream>
using namespace std;
int main() {
int n, m;
cout << "Введіть кількість груп: ";
cin >> n;
cout << "Введіть кількість елементів в групі: ";
cin >> m;
// виділення пам'яті під масив
double** A = new double* [n];
for (int i = 0; i < n; i++) {
A[i] = new double[m];
}
// заповнення масиву
for (int i = 0; i < n; i++) {
cout << "Введіть елементи " << i + 1 << " групи:" << endl;
for (int j = 0; j < m; j++) {
cout << "A[" << i << "][" << j << "] = ";
cin >> *(A[i] + j); // звертання до елементу масиву через вказівник
}
}
// обчислення максимального значення
double Z = -1e9;
for (int i = 0; i < m; i++) {
double minA = 1e9;
for (int j = 0; j < n; j++) {
if (*(A[j] + i) < minA) {
minA = *(A[j] + i);
}
}
if (minA > Z) {
Z = minA;
}
}
cout << "Значення Z = " << Z << endl;
// звільнення виділеної пам'яті
for (int i = 0; i < n; i++) {
delete[] A[i];
}
delete[] A;
return 0;
}
```
Ця програма пропонує користувачеві ввести кількість груп та кількість елементів в групі, а потім заповнює масив A дійсних чисел розміром nхm використовуючи вказівники. Після цього вона обчислює максимальне значення, шукаючи мінімальні значення в кожній групі, і виводить значення Z. В кінці програма звільняє виділену динамічною пам'яттю.