Advertisement
LilAsian

лаб 4

Dec 5th, 2021 (edited)
789
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.98 KB | None | 0 0
  1. #include <iostream>
  2. #include <stdlib.h>
  3. #include <windows.h>
  4.  
  5. using namespace std;
  6.  
  7. class matr {
  8.  
  9.     int** base;
  10.     int sizeX;
  11.  
  12. public:
  13.  
  14.     matr(int n) {
  15.         if (n > 20) {
  16.             exit(1);
  17.         }
  18.         else {
  19.             cout << "Введите матрицу:" << endl;
  20.             sizeX = n;
  21.             base = new int* [sizeX];
  22.             for (int i = 0; i < sizeX; i++) {
  23.                 base[i] = new int[sizeX];
  24.             }
  25.             for (int i = 0; i < sizeX; i++)
  26.                 for (int j = 0; j < sizeX; j++)
  27.                     cin >> base[i][j];
  28.         }
  29.     };
  30.  
  31.     ~matr() {
  32.         for (int i = 0; i < sizeX; i++) {
  33.             delete[] base[i];
  34.         }
  35.         delete[] base;
  36.  
  37.     };
  38.  
  39.     int& GetElem(int i, int j)
  40.     {
  41.         return base[i][j];
  42.     };
  43.  
  44.     int GetSizeX() {
  45.         return sizeX;
  46.     };
  47.  
  48.     void Print() {
  49.         for (int i = 0; i < sizeX; i++) {
  50.             for (int j = 0; j < sizeX; j++) {
  51.                 cout << base[i][j] << " ";
  52.             }
  53.             cout << endl;
  54.         }
  55.     };
  56.  
  57.     bool SearchIn() {
  58.         bool res = false;
  59.         int min = base[0][0];
  60.         for (int i = 0; i < sizeX; i++)
  61.         {
  62.             for (int j = 0; j < sizeX; j++)
  63.             {
  64.                 if (base[i][j] < min) {
  65.                     min = base[i][j];
  66.                     if ((i <= sizeX / 2) && (j >= sizeX / 2) && ((sizeX - j - 1) < i))
  67.                         res = true;
  68.                     else res = false;
  69.                 }
  70.             }
  71.         }
  72.         return res;
  73.     };
  74.  
  75.     double SearchArifm() {
  76.         double summ = 0;
  77.         int k = 0;
  78.         for (int j = sizeX - 1; j >= sizeX / 2; j--) {
  79.             for (int i = sizeX - 1 - j; i <= j; i++)
  80.  
  81.             {
  82.                 k++;
  83.                 summ += base[i][j];
  84.             }
  85.         }
  86.  
  87.         return summ / k;
  88.     };
  89.  
  90.     void Printbackwards() {
  91.         for (int j = sizeX - 1; j >= 0; j--)
  92.             cout << base[0][j] << " ";
  93.  
  94.         cout << endl;
  95.     };
  96. };
  97.  
  98. int main() {
  99.     SetConsoleCP(1251);
  100.     SetConsoleOutputCP(1251);
  101.     int n;
  102.     cout << "Введите размер матрицы:";
  103.     cin >> n;
  104.     matr b(n);
  105.     cout << "ваша матрица:\n";
  106.     b.Print();
  107.     double ar = b.SearchArifm();
  108.     cout << "среднее арифметическое заштр. части: "<< ar;
  109.     cout << "\n";
  110.     cout << " первая строка в обратном порядке: \n";
  111.     b.Printbackwards();
  112. }
  113.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement