Advertisement
Guest User

Untitled

a guest
Dec 17th, 2018
86
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.66 KB | None | 0 0
  1. #include <iostream>
  2.  
  3. using namespace std;
  4.  
  5. class Macierz
  6. {
  7. public:
  8.     int n;
  9.     double tab[10][10];
  10.     Macierz()
  11.     {
  12.         n=0;
  13.     }
  14.  
  15.     friend Macierz operator+(Macierz m1, Macierz m2)
  16.     {
  17.         Macierz w;
  18.         w.n=0;
  19.         if(m1.n != m2.n)
  20.         {
  21.             cout << "Wymiary niezgodne" << endl;
  22.         }
  23.         else
  24.         {
  25.             w.n = m1.n;
  26.             for(int i = 0; i < m1.n ; i++)
  27.             {
  28.                 for(int j = 0; j < m1.n ; j++)
  29.                 {
  30.                     w.tab[i][j] = m1.tab[i][j] + m2.tab[i][j];
  31.                 }
  32.             }
  33.         }
  34.         return w;
  35.     }
  36.  
  37.     friend Macierz operator*(Macierz m1, Macierz m2)
  38.     {
  39.         Macierz w;
  40.         w.n=0;
  41.         if(m1.n != m2.n)
  42.         {
  43.             cout << "Wymiary niezgodne" << endl;
  44.         }
  45.         else
  46.         {
  47.             w.n = m1.n;
  48.             for(int i = 0; i < m1.n ; i++)
  49.             {
  50.                 for(int j = 0; j < m1.n ; j++)
  51.                 {
  52.                     w.tab[i][j] = 0;
  53.                     for(int k = 0 ; k < m1.n ; k++)
  54.                     {
  55.                         w.tab[i][j] += m1.tab[i][k] * m2.tab[k][j];
  56.                     }
  57.                 }
  58.             }
  59.         }
  60.         return w;
  61.     }
  62.  
  63.     friend Macierz operator^(Macierz m1, int k)
  64.     {
  65.         Macierz w;
  66.         w.n=0;
  67.         if(k<1)
  68.         {
  69.             cout << "Nieprawidlowa potega" << endl;
  70.         }
  71.         else
  72.         {
  73.             w.n = m1.n;
  74.             for(int i = 0; i < m1.n ; i++)
  75.             {
  76.                 for(int j = 0; j < m1.n ; j++)
  77.                 {
  78.                     w.tab[i][j] = m1.tab[i][j];
  79.                 }
  80.             }
  81.             for(int i = 0; i < k-1 ; i++)
  82.             {
  83.                 w = w*m1;
  84.             }
  85.         }
  86.         return w;
  87.     }
  88.     friend ostream& operator<<(ostream &o, Macierz m)
  89.     {
  90.         for(int i = 0; i < m.n ; i++)
  91.         {
  92.             for(int j = 0; j < m.n ; j++)
  93.             {
  94.                 o << m.tab[i][j] << "\t";
  95.             }
  96.             o << endl;
  97.         }
  98.         return o;
  99.     }
  100.     void wypelnij_mnie_losowo()
  101.     {
  102.         for(int i = 0; i < n ; i++)
  103.         {
  104.             for(int j = 0; j < n ; j++)
  105.             {
  106.                 tab[i][j] = rand()%10;
  107.             }
  108.         }
  109.     }
  110. };
  111.  
  112.  
  113.  
  114. int main()
  115. {
  116.     Macierz m1, m2;
  117.     m1.n = 2;
  118.     m2.n = 2;
  119.     m1.wypelnij_mnie_losowo();
  120.     m2.wypelnij_mnie_losowo();
  121.     Macierz m3 = m1 * m2;
  122.     cout << m1 << endl;
  123.     cout << "------" << endl;
  124.     cout << m2 << endl;
  125.     cout << "------" << endl;
  126.     cout << m3 << endl;
  127.  
  128.     return 0;
  129. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement