Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- using namespace std;
- class Matrix
- {
- private:
- int rozmiar;
- int **macierz;
- public:
- Matrix(int rozmiar_m);
- ~Matrix();
- void Wyswietl();
- int Wyznacznik();
- friend Matrix operator*(int mnoznik, Matrix mtx);
- friend Matrix operator*(Matrix mtx, int mnoznik);
- friend Matrix operator*(Matrix mtx1, Matrix mtx2);
- friend Matrix operator+(int sumnik, Matrix mtx);
- friend Matrix operator+(Matrix mtx, int sumnik);
- friend Matrix operator+(Matrix mtx1, Matrix mtx2);
- friend Matrix operator/(Matrix mtx, int dzielnik);
- friend Matrix operator/(Matrix mtx1, Matrix mtx2);
- };
- Matrix::Matrix(int rozmiar_m)
- {
- if (rozmiar_m<1) rozmiar = 1;
- else rozmiar = rozmiar_m;
- macierz = new int *[rozmiar_m];
- for(int i=0;i<rozmiar;i++)
- macierz[i] = new int[rozmiar];
- int test =0; //test wypełnienia
- for (int i=0;i<rozmiar;i++)
- for(int j=0;j<rozmiar;j++)
- {
- macierz[i][j] = test; //test
- test++; //test
- }
- }
- Matrix::~Matrix()
- {
- }
- void Matrix::Wyswietl()
- {
- cout << "Rozmiar: " << rozmiar << endl;
- for(int i=0;i<rozmiar;i++)
- {
- for(int j=0;j<rozmiar;j++)
- {
- cout << macierz[i][j] << " ";
- }
- cout << endl;
- }
- }
- Matrix operator*(int mnoznik, Matrix mtx)
- {
- int rozmiar = mtx.rozmiar;
- Matrix temp(rozmiar);
- for(int i=0;i<rozmiar;i++)
- for(int j=0;j<rozmiar;j++)
- {
- temp.macierz[i][j] = mtx.macierz[i][j] * mnoznik;
- }
- return temp;
- }
- Matrix operator*(Matrix mtx, int mnoznik)
- {
- Matrix temp(mtx.rozmiar);
- temp = mnoznik * mtx;
- return temp;
- }
- Matrix operator+(int sumnik, Matrix mtx)
- {
- int rozmiar = mtx.rozmiar;
- Matrix temp(rozmiar);
- for(int i=0;i<rozmiar;i++)
- for(int j=0;j<rozmiar;j++)
- {
- temp.macierz[i][j] = mtx.macierz[i][j] + sumnik;
- }
- return temp;
- }
- Matrix operator+(Matrix mtx, int sumnik)
- {
- Matrix temp(mtx.rozmiar);
- temp = sumnik + mtx;
- return temp;
- }
- Matrix operator*(Matrix mtx1, Matrix mtx2)
- {
- int rozmiar = mtx1.rozmiar;
- Matrix temp(rozmiar);
- for(int i=0;i<rozmiar;i++)
- for(int j=0;j<rozmiar;j++)
- {
- temp.macierz[i][j] = mtx1.macierz[i][j] * mtx2.macierz[i][j];
- }
- return temp;
- }
- Matrix operator+(Matrix mtx1, Matrix mtx2)
- {
- int rozmiar = mtx1.rozmiar;
- Matrix temp(rozmiar);
- for(int i=0;i<rozmiar;i++)
- for(int j=0;j<rozmiar;j++)
- {
- temp.macierz[i][j] = mtx1.macierz[i][j] + mtx2.macierz[i][j];
- }
- return temp;
- }
- Matrix operator/(Matrix mtx, int dzielnik)
- {
- int rozmiar = mtx.rozmiar;
- Matrix temp(rozmiar);
- for(int i=0;i<rozmiar;i++)
- for(int j=0;j<rozmiar;j++)
- {
- temp.macierz[i][j] = mtx.macierz[i][j] / dzielnik;
- }
- return temp;
- }
- Matrix operator/(Matrix mtx1, Matrix mtx2)
- {
- int rozmiar = mtx1.rozmiar;
- Matrix temp(rozmiar);
- for(int i=0;i<rozmiar;i++)
- for(int j=0;j<rozmiar;j++)
- {
- if (mtx2.macierz[i][j] !=0)
- temp.macierz[i][j] = mtx1.macierz[i][j] / mtx2.macierz[i][j];
- }
- return temp;
- }
- int Matrix::Wyznacznik()
- {
- int wyznacznik;
- //////////////////////
- /////////////////////
- /////////////////////
- return wyznacznik;
- }
- ///////////////////////////////////////////////////////
- void main()
- {
- Matrix A(3);
- Matrix B(3);
- A.Wyswietl();
- B = 2+A;
- B.Wyswietl();
- getchar();
- }
Advertisement
Add Comment
Please, Sign In to add comment