12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788 |
- #include <iostream>
- using namespace std;
- int** create_matrix(int rows, int cols){ // создание матрицы
- int **matrix = new int *[rows]; // создание массива matrix с размером rows
- for (int i = 0; i < rows; i++){ // цикл от 0 до rows
- matrix[i] = new int [cols]; // создание массива с размером cols в текущем элементе
- }
- return matrix; // возвращение созданной матрицы
- }
- void input_matrix_elements(int **matrix, int rows, int cols){ // ввод элементов матрицы
- cout << endl << "Input elements of matrix: " << endl;
- for (int i = 0; i < rows; i++){
- for (int j = 0; j < cols; j++){
- cin >> matrix[i][j];
- }
- cout << endl;
- }
- }
- void output_matrix(int **matrix, int rows, int cols){ // вывод элментов матрицы
- for (int i = 0; i < rows; i++){
- for (int j = 0; j < cols; j++){
- cout << matrix[i][j] << "\t";
- }
- cout << endl;
- }
- }
- int** matrix_transposition(int **matrix, int rows, int cols){ // транспонирование матрицы
- int **new_matrix = create_matrix(cols, rows); // создание матрицы new_matrix с размером cols на rows
- for (int i = 0; i < rows; i++){ // цикл от 0 до rows
- for (int j = 0; j < cols; j++){ // цикл от 0 до cols
- new_matrix[j][i] = matrix[i][j]; // присваиваем элементу new_matrix под индексами [j][i] значение matrix под индексами [i][j]
- }
- }
- return new_matrix; // возвращаем транспонированную матрицу
- }
- void delete_matrix(int **matrix, int iterations){ // удаление матрицы
- for (int i = 0; i < iterations; i++){ // цикл от 0 до iterations
- delete[] matrix[i]; // удаление текущего элемента матрицы
- }
- delete[] matrix; // удаление матрицы
- }
- int main(){
- int rows, cols; // строки и столбцы матрицы
- // ввод размера матрицы
- cout << "Input rows of matrix: " << endl;
- cin >> rows;
- cout << "Input cols of matrix: " << endl;
- cin >> cols;
-
- // если размер меньше 0, то завершаем программу
- if ((rows < 1) || (cols < 1)){
- cout << "Size cannot be less than 1." << endl;
- return 0;
- }
- // инициализация матрицы с указанными размерами
- int **matrix = create_matrix(rows, cols);
- // ввод матрицы
- input_matrix_elements(matrix, rows, cols);
- // вывод матрицы
- cout << endl << "Entered matrix: " << endl;
- output_matrix(matrix, rows, cols);
- // Транспонирование введённой матрицы
- int **new_matrix = matrix_transposition(matrix, rows, cols);
- // вывод полученной матрицы
- cout << endl << "Transposed matrix: " << endl;
- output_matrix(new_matrix, cols, rows);
- // очистка ОЗУ
- delete_matrix(matrix, rows);
- delete_matrix(new_matrix, cols);
- // завершение программы
- return 0;
- }
|