Guest User

Untitled

a guest
May 20th, 2013
34
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.18 KB | None | 0 0
  1. #include <iostream>
  2.  
  3. using namespace std;
  4.  
  5. class Matrix
  6. {
  7. private:
  8.     int rozmiar;
  9.     int **macierz;
  10. public:
  11.     Matrix(int rozmiar_m);
  12.     ~Matrix();
  13.     void Wyswietl();
  14.     int Wyznacznik();
  15.     friend Matrix operator*(int mnoznik, Matrix mtx);
  16.     friend Matrix operator*(Matrix mtx, int mnoznik);
  17.     friend Matrix operator*(Matrix mtx1, Matrix mtx2);
  18.     friend Matrix operator+(int sumnik, Matrix mtx);
  19.     friend Matrix operator+(Matrix mtx, int sumnik);
  20.     friend Matrix operator+(Matrix mtx1, Matrix mtx2);
  21.     friend Matrix operator/(Matrix mtx, int dzielnik);
  22.     friend Matrix operator/(Matrix mtx1, Matrix mtx2);
  23.  
  24.  
  25. };
  26.  
  27. Matrix::Matrix(int rozmiar_m)
  28. {
  29. if (rozmiar_m<1) rozmiar = 1;
  30. else rozmiar = rozmiar_m;
  31. macierz = new int *[rozmiar_m];
  32.     for(int i=0;i<rozmiar;i++)
  33.     macierz[i] = new int[rozmiar];
  34.     int test =0;                            //test wypełnienia
  35.     for (int i=0;i<rozmiar;i++)
  36.         for(int j=0;j<rozmiar;j++)
  37.         {
  38.             macierz[i][j] = test;           //test
  39.             test++;                         //test
  40.         }
  41. }
  42.  
  43. Matrix::~Matrix()
  44. {
  45. }
  46.  
  47. void Matrix::Wyswietl()
  48. {
  49. cout << "Rozmiar: " << rozmiar << endl;
  50. for(int i=0;i<rozmiar;i++)
  51. {
  52.     for(int j=0;j<rozmiar;j++)
  53.     {
  54.         cout << macierz[i][j] << " ";
  55.     }
  56.     cout << endl;
  57. }
  58. }
  59. Matrix operator*(int mnoznik, Matrix mtx)
  60. {
  61.     int rozmiar = mtx.rozmiar;
  62.     Matrix temp(rozmiar);
  63.     for(int i=0;i<rozmiar;i++)
  64.         for(int j=0;j<rozmiar;j++)
  65.         {
  66.             temp.macierz[i][j] = mtx.macierz[i][j] * mnoznik;
  67.         }
  68.     return temp;
  69. }
  70. Matrix operator*(Matrix mtx, int mnoznik)
  71. {
  72.     Matrix temp(mtx.rozmiar);
  73.     temp = mnoznik * mtx;
  74.     return temp;
  75. }
  76.  
  77. Matrix operator+(int sumnik, Matrix mtx)
  78. {
  79.     int rozmiar = mtx.rozmiar;
  80.     Matrix temp(rozmiar);
  81.     for(int i=0;i<rozmiar;i++)
  82.         for(int j=0;j<rozmiar;j++)
  83.         {
  84.             temp.macierz[i][j] = mtx.macierz[i][j] + sumnik;
  85.         }
  86. return temp;
  87. }
  88. Matrix operator+(Matrix mtx, int sumnik)
  89. {
  90.     Matrix temp(mtx.rozmiar);
  91.     temp = sumnik + mtx;
  92.  
  93. return temp;
  94. }
  95.  
  96. Matrix operator*(Matrix mtx1, Matrix mtx2)
  97. {
  98.     int rozmiar = mtx1.rozmiar;
  99.     Matrix temp(rozmiar);
  100.     for(int i=0;i<rozmiar;i++)
  101.     for(int j=0;j<rozmiar;j++)
  102.     {
  103.         temp.macierz[i][j] = mtx1.macierz[i][j] * mtx2.macierz[i][j];
  104.     }
  105.  
  106. return temp;
  107. }
  108.  
  109. Matrix operator+(Matrix mtx1, Matrix mtx2)
  110. {
  111.         int rozmiar = mtx1.rozmiar;
  112.     Matrix temp(rozmiar);
  113.     for(int i=0;i<rozmiar;i++)
  114.     for(int j=0;j<rozmiar;j++)
  115.     {
  116.         temp.macierz[i][j] = mtx1.macierz[i][j] + mtx2.macierz[i][j];
  117.     }
  118.  
  119. return temp;
  120. }
  121. Matrix operator/(Matrix mtx, int dzielnik)
  122. {
  123.     int rozmiar = mtx.rozmiar;
  124.     Matrix temp(rozmiar);
  125.         for(int i=0;i<rozmiar;i++)
  126.     for(int j=0;j<rozmiar;j++)
  127.     {
  128.         temp.macierz[i][j] = mtx.macierz[i][j] / dzielnik;
  129.     }
  130.  
  131. return temp;
  132. }
  133. Matrix operator/(Matrix mtx1, Matrix mtx2)
  134. {
  135.         int rozmiar = mtx1.rozmiar;
  136.     Matrix temp(rozmiar);
  137.         for(int i=0;i<rozmiar;i++)
  138.     for(int j=0;j<rozmiar;j++)
  139.     {
  140.         if (mtx2.macierz[i][j] !=0)
  141.             temp.macierz[i][j] = mtx1.macierz[i][j] / mtx2.macierz[i][j];
  142.     }
  143.  
  144. return temp;
  145. }
  146.  
  147. int Matrix::Wyznacznik()
  148. {
  149. int wyznacznik;
  150. //////////////////////
  151. /////////////////////
  152. /////////////////////
  153. return wyznacznik;
  154. }
  155.  
  156.  
  157. ///////////////////////////////////////////////////////
  158. void main()
  159. {
  160.     Matrix A(3);
  161.     Matrix B(3);
  162.  
  163.     A.Wyswietl();
  164.     B = 2+A;
  165.     B.Wyswietl();
  166.  
  167.     getchar();
  168. }
Advertisement
Add Comment
Please, Sign In to add comment