#Include

You might also like

Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 3

#include <iostream>

using namespace std;

#define N 10

class matrici
{
private:
int s[N][N];
int u;
public:
void show();
matrici operator +(matrici);
matrici operator *(matrici);
matrici operator *(int);
matrici operator ^(int);
void read(int);
void takevalue(int n) {
u = n;
}
};

matrici matrici::operator+(matrici uu2)


{
matrici t;
for (int i = 0; i < u; i++)
for (int j = 0; j < u; j++)
t.s[i][j] = s[i][j] + uu2.s[i][j];
return t;
}
matrici matrici::operator*(matrici uu2)
{
matrici t;
for (int i = 0; i < u; i++)
for (int j = 0; j < u; j++)
{
t.s[i][j] = 0;
for (int k = 0; k < u; k++)
t.s[i][j] += s[i][k] * uu2.s[k][j];
}
return t;
}
matrici matrici::operator^(int n) {
matrici t,t1;
for (int i = 0; i < u; i++)
for (int j = 0; j < u; j++)
t1.s[i][j] = s[i][j];
for (int l = 0; l < n-1; l++) {
for (int i = 0; i < u; i++)
for (int j = 0; j < u; j++)
t.s[i][j] = 0;
for (int i = 0; i < u; i++) {
for (int j = 0; j < u; j++)
{
for (int k = 0; k < u; k++)
t.s[i][j] += t1.s[i][k] * s[k][j];
}
}
for (int i = 0; i < u; i++)
for (int j = 0; j < u; j++)
t1.s[i][j] = t.s[i][j];
}

return t;
}
matrici matrici::operator*(int n){
matrici t;
for (int i = 0; i < u; i++)
for (int j = 0; j < u; j++)
{
t.s[i][j] = s[i][j] * n;
}
return t;
}
void matrici::read(int x)
{
for (int i = 0; i < x; i++)
for (int j = 0; j < x; j++) {
cin >> s[i][j];
}
}
void matrici::show()
{
for (int i = 0; i < u; i++)
{
for (int j = 0; j < u; j++)
{
cout << s[i][j] << "\t";
}
cout << "\n";
}
}

int main()
{
matrici m1, m2, m3, m4, m5, m6;
int n;
cout << "\tScrieti marimea matricelor: "; cin >> n;
cout << "Scrieti prima matrice:\n";
m1.read(n);
m1.takevalue(n);
cout << "Scrieti a 2-a matrice:\n";
m2.read(n);
m2.takevalue(n);
cout << "Adunarea celor 2 matrice:\n";
m3 = m1 + m2;
m3.takevalue(n);
m3.show();
cout << "Inmultirea celor 2 matrice:\n";
m4 = m1 * m2;
m4.takevalue(n);
m4.show();
cout << "Inmultirea primei matrice cu 3:\n";
m5 = m1 * 3;
m5.takevalue(n);
m5.show();
cout << "Ridicarea primei matrice la puterea a 3-a:\n";
m6 = m1 ^ 3;
m6.takevalue(n);
m6.show();
system("pause");
}

You might also like