Advertisement
MrGhost75

LAB7_VAR3

Mar 9th, 2020
160
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.53 KB | None | 0 0
  1.  
  2. //Дьяченко Максим Артёмович. ПС-19-1. Лабораторная работа №2, 2-й семестр. Вариант 3.
  3.  
  4.  
  5. #include <iostream>
  6. using namespace std;
  7.  
  8. //(1) Первая функция для работы с двойным указателем на матрицу:
  9. void function1(double** matrix, int rows, int columns) {
  10.     double k = 1;
  11.     for (int i = 0; i < rows; i += 2) {
  12.         for (int j = 0; j < columns; j++) {
  13.             k *= matrix[i][j];
  14.         }
  15.     }
  16.     for (int i = 1; i < rows; i += 2) {
  17.         for (int j = 0; j < columns; j++) {
  18.             if (matrix[i][j] < 0) {
  19.                 matrix[i][j] = k;
  20.             }
  21.         }
  22.     }
  23. }
  24.  
  25. //(2) Вторая функция для работы с указателем на одномерный массив размерности length:
  26. void function2(double* array, int rows, int columns) {
  27.     double k = 1;
  28.     for (int i = 0; i < rows; i += 2) {
  29.         for (int j = 0; j < columns; j++) {
  30.             k *= array[i * columns + j];
  31.         }
  32.     }
  33.     for (int i = 1; i < rows; i += 2) {
  34.         for (int j = 0; j < columns; j++) {
  35.             if (array[i * columns + j] < 0) {
  36.                 array[i * columns + j] = k;
  37.             }
  38.         }
  39.     }
  40. }
  41.  
  42. //ГЛАВНАЯ ФУНКЦИЯ:
  43. int main()
  44. {
  45.     setlocale(LC_CTYPE, "rus");
  46.  
  47.     //Ввод размерности матрицы n x m:
  48.     int n, m;
  49.     cout << "Enter the number of rows in your matrix: "; cin >> n;
  50.     cout << "Enter the number of columns in your matrix: "; cin >> m;
  51.  
  52.     //(1)Объявление матрицы с использованием двойного указателя:
  53.     double** matrix = new double* [n];
  54.     for (int i = 0; i < n; i++) {
  55.         matrix[i] = new double[m];
  56.     }
  57.  
  58.     //(2)Объявление матрицы с использованием указателя на одномерный массив размерности (n*m):
  59.     double* array = new double[n * m];
  60.  
  61.     //(1)Заполнение матрицы с консоли:
  62.     cout << "\nFill in your 1st matrix:\n";
  63.     for (int i = 0; i < n; i++) {
  64.         for (int j = 0; j < m; j++) {
  65.             cout << "Element [" << i << "][" << j << "]: "; cin >> matrix[i][j];
  66.         }
  67.     }
  68.  
  69.     //(2)Заполнение матрицы с консоли:
  70.     cout << "\nFill in your 2nd matrix:\n";
  71.     for (int i = 0; i < n; i++) {
  72.         for (int j = 0; j < m; j++) {
  73.             cout << "Element [" << i << "][" << j << "]: "; cin >> *(array + i * m + j);
  74.         }
  75.     }
  76.  
  77.     //(1)Вывод матрицы на экран:
  78.     cout << "\nYour 1st matrix: " << endl;
  79.     for (int i = 0; i < n; i++) {
  80.         for (int j = 0; j < m; j++) {
  81.             cout << matrix[i][j] << "\t";
  82.         }
  83.         cout << endl;
  84.     }
  85.  
  86.     //(1)Вызов функции для обработки матрицы:
  87.     function1(matrix, n, m);
  88.  
  89.     //(1)Вывод матрицы после использования функции:
  90.     cout << "\nYour 1st matrix after using the function: " << endl;
  91.     for (int i = 0; i < n; i++) {
  92.         for (int j = 0; j < m; j++) {
  93.             cout << matrix[i][j] << "\t";
  94.         }
  95.         cout << endl;
  96.     }
  97.  
  98.     //(2)Вывод матрицы на экран:
  99.     cout << "\nYour 2nd matrix: " << endl;
  100.     for (int i = 0; i < n; i++) {
  101.         for (int j = 0; j < m; j++) {
  102.             cout << array[i * m + j] << "\t";
  103.         }
  104.         cout << endl;
  105.     }
  106.  
  107.     //(2)Вызов функции для обработки матрицы:
  108.     function2(&array[0], n, m);
  109.  
  110.     //(2)Вывод матрицы после использования функции:
  111.     cout << "\nYour 2nd matrix after using the function: " << endl;
  112.     for (int i = 0; i < n; i++) {
  113.         for (int j = 0; j < m; j++) {
  114.             cout << array[i * m + j] << "\t";
  115.         }
  116.         cout << endl;
  117.     }
  118.  
  119.     system("pause");
  120.     return 0;
  121. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement