1. Реалізувати програму, яка міняє елементи заданого стовпця матриці дійсних
чисел на значення відповідних елементів одновимірного масиву.
2. Змінити код програми (задача №1) таким чином, щоб використовувались не статичні масиви і статичні константи для їх оголошення, а
динамічні масиви
Ответы
1( статичний массив
#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;
int main() {
int rows, columns, column_number;
cout << "Enter the number of rows: ";
cin >> rows;
cout << "Enter the number of columns: ";
cin >> columns;
cout << "Enter the number of the column you want to modify: ";
cin >> column_number;
static double matrix[8][8]; // static 2D array with a maximum size of 8x8
// fill the matrix with random numbers
srand(time(0));
for (int i = 0; i < rows; i++)
for (int j = 0; j < columns; j++)
matrix[i][j] = rand() % 10;
// print the original matrix
cout << "Original matrix:" << endl;
for (int i = 0; i < rows; i++) {
for (int j = 0; j < columns; j++)
cout << matrix[i][j] << " ";
cout << endl;
}
// create a one-dimensional array with the same size as the column we want to modify
static double column_values[8];
for (int i = 0; i < rows; i++) {
cout << "Enter a value for row " << i + 1 << ": ";
cin >> column_values[i];
}
// modify the column
for (int i = 0; i < rows; i++)
matrix[i][column_number - 1] = column_values[i];
// print the modified matrix
cout << "Modified matrix:" << endl;
for (int i = 0; i < rows; i++) {
for (int j = 0; j < columns; j++)
cout << matrix[i][j] << " ";
cout << endl;
}
return 0;
}
2( динамічний массив
#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;
int main() {
int rows, columns, column_number;
cout << "Enter the number of rows: ";
cin >> rows;
cout << "Enter the number of columns: ";
cin >> columns;
cout << "Enter the number of the column you want to modify: ";
cin >> column_number;
double** matrix = new double*[rows]; // dynamic 2D array
for (int i = 0; i < rows; i++)
matrix[i] = new double[columns];
// fill the matrix with random numbers
srand(time(0));
for (int i = 0; i < rows; i++)
for (int j = 0; j < columns; j++)
matrix[i][j] = rand() % 10;
// print the original matrix
cout << "Original matrix:" << endl;
for (int i = 0; i < rows; i++) {
for (int j = 0; j < columns; j++)
cout << matrix[i][j] << " ";
cout << endl;
}
// create a one-dimensional array with the same size as the column we want to modify
double* column_values = new double[rows];
for (int i = 0; i < rows; i++) {
cout << "Enter a value for row " << i + 1 << ": ";
cin >> column_values[i];
}
// modify the column
for (int i = 0; i < rows; i++)
matrix[i][column_number - 1] = column_values[i];
// print the modified matrix
cout << "Modified matrix:" << endl;
for (int i = 0; i < rows; i++) {
for (int j = 0; j < columns; j++)
cout << matrix[i][j] << " ";
cout << endl;
}
// deallocate memory
for (int i = 0; i < rows; i++)
delete[] matrix[i];
delete[] matrix;
delete[] column_values;
return 0;
}