Savelyev_Vyacheslav

OOP L4

Aug 2nd, 2021 (edited)
287
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 4.21 KB | None | 0 0
  1. // ООП_4.cpp : Этот файл содержит функцию "main". Здесь начинается и заканчивается выполнение программы.
  2. //
  3. #define _CRT_SECURE_NO_WARNINGS
  4. #include <iostream>
  5. #include <math.h>
  6. using namespace std;
  7.  
  8. class MatrixQuatro;
  9. class MatrixVector
  10. {
  11. private:
  12.     int n;
  13.     int* matr;
  14. public:
  15.     MatrixVector(int _n, int* _matr)
  16.     {
  17.         n = _n;
  18.         matr = _matr;
  19.     }
  20.     void show()
  21.     {
  22.         cout << "MatrixVector: " << endl;
  23.         for (int i = 0; i < n; i++)
  24.         {
  25.                     cout << matr[i] << " ";    
  26.             cout << endl;
  27.         }
  28.  
  29.     }
  30.     friend void minEquals(MatrixVector* obj1, MatrixQuatro* obj2);
  31. };
  32.  
  33. class MatrixQuatro
  34. {
  35. private:
  36.     int n;
  37.     int m;
  38.     int** matr;
  39. public:
  40.     MatrixQuatro(int _n, int _m, int** _matr)
  41.     {
  42.         n = _n;
  43.         m = _m;
  44.         matr = _matr;
  45.     }
  46.     void show()
  47.     {
  48.         cout << "MatrixQuatro: " << endl;
  49.         for (int i = 0; i < n; i++)
  50.         {
  51.             for (int j = 0; j < m; j++)
  52.             {
  53.                 cout << matr[i][j] << " ";
  54.             }
  55.             cout << endl;
  56.         }
  57.     }
  58.     friend void minEquals(MatrixVector* obj1, MatrixQuatro* obj2);
  59. };
  60.  
  61. void minEquals(MatrixVector* obj1, MatrixQuatro* obj2)
  62. {
  63.     cout << "Минимальные и равные узлы матриц MatrixVector и MatrixQuatro: " << endl;
  64.     int minNumV; minNumV = obj1->matr[0];
  65.     int minNumQ; minNumQ = obj2->matr[0][0];
  66.     for (int i = 0; i < obj1->n; i++)
  67.     {
  68.         if (minNumV > obj1->matr[i]) {minNumV = obj1->matr[i]; }
  69.        
  70.     }
  71. cout << endl;
  72.     for (int i = 0; i < obj2->n; i++)
  73.     {
  74.         for (int j = 0; j < obj2->m; j++)
  75.         {
  76.             if (minNumQ > obj2->matr[i][j]) { minNumQ = obj2->matr[i][j]; }
  77.         }
  78.        
  79.     }
  80. cout << endl;
  81.     if (minNumV == minNumQ){ cout << "Равны два минимума: "<< minNumQ<< " = " << minNumV << endl; }
  82.     else { cout << "Минимальных и равных узлов нет " <<  endl; }
  83. }
  84.  
  85. int main()
  86. {
  87.     setlocale(LC_ALL, "Russian");
  88.     int n;
  89.     int m;
  90.     cout << "Введите количество строк матрицы Вектор" << endl;
  91.     cin >> n;
  92.     cout << "Введите количество столбцов матрицы Квадрат" << endl;
  93.     cin >> m;
  94.     int* matrVector = new int [n];
  95.     int** matrQuadro = new int* [n];
  96.     cout << "Введите матрицу целых чисел для матр. Вектор:" << endl;
  97.     for (int i = 0; i < n; i++)
  98.     {
  99.             cin >> matrVector[i];
  100.     }
  101.     cout << "Введите матрицу целых чисел для матр. Квадрат:" << endl;
  102.     for (int i = 0; i < n; i++)
  103.     {
  104.         matrQuadro[i] = new int[m];
  105.         for (int j = 0; j < m; j++)
  106.         {
  107.             cin >> matrQuadro[i][j];
  108.         }
  109.  
  110.     }
  111.     MatrixVector* obj1 = new MatrixVector(n,  matrVector);
  112.     MatrixQuatro* obj2 = new MatrixQuatro(n, m, matrQuadro);
  113.     obj1->show();
  114.     obj2->show();
  115.     minEquals(obj1, obj2);
  116.     for (int i = 0; i < n; i++)
  117.     {
  118.         delete[] matrQuadro[i];
  119.     }
  120.     delete[] matrVector;
  121.     delete obj1;
  122.     delete obj2;
  123.     return 0;
  124. }
  125.  
  126.  
  127. // Запуск программы: CTRL+F5 или меню "Отладка" > "Запуск без отладки"
  128. // Отладка программы: F5 или меню "Отладка" > "Запустить отладку"
  129.  
  130. // Советы по началу работы
  131. //   1. В окне обозревателя решений можно добавлять файлы и управлять ими.
  132. //   2. В окне Team Explorer можно подключиться к системе управления версиями.
  133. //   3. В окне "Выходные данные" можно просматривать выходные данные сборки и другие сообщения.
  134. //   4. В окне "Список ошибок" можно просматривать ошибки.
  135. //   5. Последовательно выберите пункты меню "Проект" > "Добавить новый элемент", чтобы создать файлы кода, или "Проект" > "Добавить существующий элемент", чтобы добавить в проект существующие файлы кода.
  136. //   6. Чтобы снова открыть этот проект позже, выберите пункты меню "Файл" > "Открыть" > "Проект" и выберите SLN-файл.
  137.  
Add Comment
Please, Sign In to add comment