Documente Academic
Documente Profesional
Documente Cultură
supraincarcarea
operatorului 'insertie in
flux' pentru afisarea elementelor unei matrice*/
friend matrice operator+(matrice&,matrice&); /* supraincarcarea
operatorului '+' pentru adunarea
a doua matrice*/
friend matrice operator-(matrice&); /* supraincarcarea operatorului
'-' pentru determinarea opusei
unei matrice*/
{
for(int i=0;i<a.m;i++)
{
for(int j=0;j<a.n;j++)
x<<'\t'<<*a(i,j);
x<<endl;
}
return x;
}
// supraincarcarea operatorului '+' pentru adunarea a doua matrice
matrice operator+(matrice& a,matrice& b)
{
matrice c;
c.m=a.m; //sau, c.m=b.m;
c.n=a.n; //sau, c.n=b.n;
for(int i=0;i<c.m;i++)
for(int j=0;j<c.n;j++)
*c(i,j)=*a(i,j)+*b(i,j);
return c;
}
// supraincarcarea operatorului '-' pentru determinarea opusei unei matrice
matrice operator-(matrice& a)
{
matrice c;
c.m=a.m;
c.n=a.n;
for(int i=0;i<c.m;i++)
for(int j=0;j<c.n;j++)
*c(i,j)=-*a(i,j);
return c;
}
// supraincarcarea operatorului '-' pentru diferenta a doua matrice
matrice operator-(matrice& a,matrice& b)
{
return a+(-b);
}
// supraincarcarea operatorului '~' pentru transpusa unei matrice
matrice operator~(matrice& a)
{
matrice c;
c.m=a.m;
c.n=a.n;
for(int i=0;i<c.m;i++)
for(int j=0;j<c.n;j++)
*c(j,i)=*a(i,j);
return c;
}
void main()
{
int m,n; // m - nr de linii, n - nr de coloane
cout<<"Dati dimensiunea matricelor:\n";
cout<<"\tnumarul de linii: ";
cin>>m;
cout<<"\tnumarul de coloane: ";
cin>>n;
matrice a(m,n),b(m,n); // apel al constructorului de initializare cu
parametri
cout<<"Citim matricea A:\n";
cin>>a; // apel al functiei ce supraincarca operatorul '>>'
cout<<"Citim matricea B:\n";
cin>>b;
cout<<"Afisam matricea A:\n";
cout<<a; // apel al functiei ce supraincarca operatorul '<<'
cout<<"Afisam matricea B:\n";
cout<<b;
cout<<endl<<"Dati o tasta ptr. a continua..."<<endl;
getch();
cout<<"Afisam A+B:\n";