Вопрос задан 24.06.2023 в 02:35. Предмет Информатика. Спрашивает Свирин Юра.

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

константи для їх оголошення, а динамічні масиви​
0 0
Перейти к ответам

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

Внимание! Ответы на вопросы дают живые люди. Они могут содержать ошибочную информацию, заблуждения, а также ответы могут быть сгенерированы нейросетями. Будьте внимательны. Если вы уверены, что ответ неверный, нажмите кнопку "Пожаловаться" под ответом.
Отвечает Терещенко Никита.

Ответ:

Объяснение:

#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;

}

0 0
Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.

Змінити програму зі статичними масивами та статичними константами на програму з динамічними масивами можна наступним чином. Вам потрібно використовувати оператор 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 для звільнення пам'яті, коли масив більше не потрібен. Це дозволяє створювати масиви змінюваного розміру під час виконання програми.

0 0

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

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос