
Змінити код програми (задача №1) таким чином, щоб вико- ристовувались не статичні масиви і статичні
константи для їх оголошення, а динамічні масиви

Ответы на вопрос

Ответ:
Объяснение:
#include <iostream>
#include <ctime>
#include <string>
using namespace std;
int main()
{
srand(time(NULL));
int N, M; // Розміри матриці
cout << "Enter n: ";
cin >> N;
cout << "Enter m: ";
cin >> M;
if (N != M) // Перевірка на не квадратну матрицю
{
cout << "n should be equal to m" << endl;
return 0;
}
int a, b; // Межі випадкових чисел масиву
cout << "Enter a: ";
cin >> a;
cout << "Enter b: ";
cin >> b;
int Width = max(to_string(a).length(), to_string(b).length()) + 1; // Ширина для cout
int** arr = new int* [N]; // Виділення пам'яті для динамічного масиву
int** result = new int* [N]; // Виділення пам'яті для динамічного масиву (результат)
for (int i = 0; i < N; i++)
{
arr[i] = new int[M];
result[i] = new int[M];
}
cout << "n = " << N << endl
<< "m = " << M << endl
<< "Interval - [" << a << ";" << b << "]" << endl << endl
<< "Our matrix: " << endl;
for (int i = 0; i < N; i++)
{
for (int j = 0; j < M; j++)
{
arr[i][j] = a + rand() % (b - a + 1);
cout.width(Width); // Щоб було красиво
cout << arr[i][j];
}
cout << endl;
}
for (int i = 0; i < N; i++)
{
for (int j = 0; j < M; j++)
{
if (j == 0 && i != N - 1)
{
result[N - 1][i + 1] = arr[i][j];
}
else if (i == N - 1 && j != 0)
{
result[j - 1][0] = arr[i][j];
}
else
{
result[i][j] = arr[i][j];
}
}
}
cout << endl << "Result matrix:" << endl;
for (int i = 0; i < N; i++)
{
for (int j = 0; j < M; j++)
{
cout.width(Width); // Щоб було красиво
cout << result[i][j];
}
cout << endl;
}
for (int i = 0; i < N; i++) // Звільнення пам'яті відведеної під динамічні масиви
{
delete[] result[i];
delete[] arr[i];
}
delete[] result;
delete[] arr;
}



Змінити програму зі статичними масивами та статичними константами на програму з динамічними масивами можна наступним чином. Вам потрібно використовувати оператор new
для створення динамічних масивів та оператор delete
для видалення їх після використання.
Ось приклад переписаної програми з динамічними масивами:
cpp#include <iostream>
int main() {
int n;
std::cout << "Введіть розмір масиву: ";
std::cin >> n;
// Створюємо динамічний масив для збереження значень
int* dynamicArray = new int[n];
// Введення значень у динамічний масив
for (int i = 0; i < n; i++) {
std::cout << "Введіть значення для елемента " << i << ": ";
std::cin >> dynamicArray[i];
}
// Виведення значень з динамічного масиву
std::cout << "Значення масиву: ";
for (int i = 0; i < n; i++) {
std::cout << dynamicArray[i] << " ";
}
std::cout << std::endl;
// Звільнення пам'яті, важливо після використання динамічного масиву
delete[] dynamicArray;
return 0;
}
У цьому коді ми використовуємо new
для створення динамічного масиву dynamicArray
та delete
для звільнення пам'яті, коли масив більше не потрібен. Це дозволяє створювати масиви змінюваного розміру під час виконання програми.


Похожие вопросы

Топ вопросов за вчера в категории Информатика
Последние заданные вопросы в категории Информатика
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili