Advertisement
JouJoy

Untitled

Jan 16th, 2020
350
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.34 KB | None | 0 0
  1. #include <iostream>
  2. #include <iomanip>
  3. using namespace std;
  4. void create(int** x, int n, char p)
  5. {
  6.     int i,j;
  7.     for (i = 0; i < n; i++)
  8.         for(j = 0; j < n;j++)
  9.     {
  10.             cout << p<<"[" << i << "][" << j << "]= ";
  11.             cin >> x[i][j];
  12.     }
  13. }
  14. void show(int** x, int n)
  15. {
  16.     int i, j;
  17.     for (i = 0; i < n; i++)
  18.     {
  19.         {
  20.             for (j = 0; j < n; j++)
  21.                 cout << setw(6)<<x[i][j];
  22.         }
  23.         cout << endl;
  24.     }
  25. }
  26. int** op1(int** x, int n)
  27. {
  28.     int** p = new int* [n];
  29.     for (int i = 0; i < n; i++) {
  30.         p[i] = new int[n];
  31.     }
  32.     int i, j;
  33.     for (i = 0; i < n; i++)
  34.         for (j = 0; j < n; j++)
  35.             p[i][j] = x[i][j];
  36.     for (j = 0; j < n - 1; j++)
  37.     {
  38.         for (i = 1 + j; i < n; i++)
  39.             p[i][j] = 0;
  40.     }
  41.     return p;
  42. }
  43. int** op2(int** x, int n)
  44. {
  45.     int** p = new int* [n];
  46.     for (int i = 0; i < n; i++) {
  47.         p[i] = new int[n];
  48.     }
  49.     int i, j;
  50.     for (i = 0; i < n; i++)
  51.         for (j = 0; j < n; j++)
  52.             p[i][j] = x[i][j];
  53.     for (j = 1; j < n; j++)
  54.     {
  55.         for (i = 0; i <j; i++)
  56.             p[i][j] = 0;
  57.     }
  58.     return p;
  59. }
  60. void add(int **x,int** y,int ** z,int n)
  61. {
  62.     int i, j;
  63.     for (i = 0; i < n; i++)
  64.         for (j = 0; j < n; j++)
  65.             z[i][j] = y[i][j] + x[i][j];
  66. }
  67. void mult (int** x, int** y, int** z, int n)
  68. {
  69.     int i, j, k;
  70.     for (i = 0; i < n; i++)
  71.         for (j = 0; j < n; j++)
  72.         {
  73.             z[i][j] = 0;
  74.             for(k=0;k<n;k++)
  75.             z[i][j] =z[i][j]+ y[i][k]*x[k][j];
  76.         }
  77. }
  78. void addnot(int** x, int** y, int** z, int n)
  79. {
  80.     int i, j;
  81.     for (i = 0; i < n; i++)
  82.         for (j = 0; j < n; j++)
  83.             z[i][j] = x[i][j] - y[i][j];
  84. }
  85. bool EA(int** x, int n)
  86. {
  87.     bool t, p;
  88.     t = false;
  89.     int i, j;
  90.     for (i = 0; i < n && !t; i++)
  91.     {
  92.         p = true;
  93.         for (j = 0; j < n && p; j++)
  94.             if (x[i][j] <= 0)
  95.                 p = false;
  96.         t = p;
  97.     }return t;
  98. }
  99. int main()
  100. {
  101.     int n;
  102.     int** a;
  103.     int** b;
  104.     int** c;
  105.     int** r;
  106.     int** k;
  107.     cout << "enter size of array: n=";
  108.     cin >> n;
  109.     int i,j;
  110.     a = new int* [n];
  111.     b = new int* [n];
  112.     c = new int* [n];
  113.     r = new int* [n];
  114.     k = new int* [n];
  115.     for (i = 0; i < n; i++)
  116.     {
  117.         a[i] = new int[n];
  118.         b[i] = new int[n];
  119.         c[i] = new int[n];
  120.         r[i] = new int[n];
  121.         k[i] = new int[n];
  122.     }
  123.     cout << "enter Matrix A" << endl;
  124.     create(a, n,'a');
  125.     if (EA(a, n))
  126.     {
  127.         c = op1(a, n);
  128.         r = op2(a, n);
  129.         mult(a, r, k, n);
  130.         addnot(c, k, b, n);
  131.     }
  132.     else
  133.     {
  134.         c = op2(a, n);
  135.         r = op1(a, n);
  136.         mult(a, r, k, n);
  137.         add(c, k, b, n);
  138.     }
  139.     show(b, n);
  140.     system("pause");
  141.     return 0;
  142. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement