Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- using namespace std;
- class Macierz
- {
- public:
- int n;
- double tab[10][10];
- Macierz()
- {
- n=0;
- }
- friend Macierz operator+(Macierz m1, Macierz m2)
- {
- Macierz w;
- w.n=0;
- if(m1.n != m2.n)
- {
- cout << "Wymiary niezgodne" << endl;
- }
- else
- {
- w.n = m1.n;
- for(int i = 0; i < m1.n ; i++)
- {
- for(int j = 0; j < m1.n ; j++)
- {
- w.tab[i][j] = m1.tab[i][j] + m2.tab[i][j];
- }
- }
- }
- return w;
- }
- friend Macierz operator*(Macierz m1, Macierz m2)
- {
- Macierz w;
- w.n=0;
- if(m1.n != m2.n)
- {
- cout << "Wymiary niezgodne" << endl;
- }
- else
- {
- w.n = m1.n;
- for(int i = 0; i < m1.n ; i++)
- {
- for(int j = 0; j < m1.n ; j++)
- {
- w.tab[i][j] = 0;
- for(int k = 0 ; k < m1.n ; k++)
- {
- w.tab[i][j] += m1.tab[i][k] * m2.tab[k][j];
- }
- }
- }
- }
- return w;
- }
- friend Macierz operator^(Macierz m1, int k)
- {
- Macierz w;
- w.n=0;
- if(k<1)
- {
- cout << "Nieprawidlowa potega" << endl;
- }
- else
- {
- w.n = m1.n;
- for(int i = 0; i < m1.n ; i++)
- {
- for(int j = 0; j < m1.n ; j++)
- {
- w.tab[i][j] = m1.tab[i][j];
- }
- }
- for(int i = 0; i < k-1 ; i++)
- {
- w = w*m1;
- }
- }
- return w;
- }
- friend ostream& operator<<(ostream &o, Macierz m)
- {
- for(int i = 0; i < m.n ; i++)
- {
- for(int j = 0; j < m.n ; j++)
- {
- o << m.tab[i][j] << "\t";
- }
- o << endl;
- }
- return o;
- }
- void wypelnij_mnie_losowo()
- {
- for(int i = 0; i < n ; i++)
- {
- for(int j = 0; j < n ; j++)
- {
- tab[i][j] = rand()%10;
- }
- }
- }
- };
- int main()
- {
- Macierz m1, m2;
- m1.n = 2;
- m2.n = 2;
- m1.wypelnij_mnie_losowo();
- m2.wypelnij_mnie_losowo();
- Macierz m3 = m1 * m2;
- cout << m1 << endl;
- cout << "------" << endl;
- cout << m2 << endl;
- cout << "------" << endl;
- cout << m3 << endl;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement