## Pages

### CPP Program for implementing various Matrix Operations

```#include<iostream.h>
#include<conio.h>
#include<ctype.h>
{
int i,j;
cout<<endl<<"Enter the Elements of the Matrix : ";
for(i=0;i<r;i++)
for(j=0;j<c;j++)
cin>>m[i][j];
}
void matdisplay(int m[10][10],int r,int c)
{
int i,j;
cout<<"The Resultant Matrix : ";
for(i=0;i<r;i++)
{
cout<<endl;
for(j=0;j<c;j++)
cout<<m[i][j]<<" ";
}
}
void matadd(int m1[10][10], int m2[10][10], int m3[10][10], int r, int c)
{
int i,j;
for(i=0;i<r;i++)
for(j=0;j<c;j++)
m3[i][j]=m1[i][j]+m2[i][j];
}
void matsub(int m1[10][10], int m2[10][10], int m3[10][10], int r, int c)
{
int i,j;
for(i=0;i<r;i++)
for(j=0;j<c;j++)
m3[i][j]=m1[i][j]-m2[i][j];
}
void matprod(int m1[10][10], int m2[10][10], int m3[10][10], int r, int c, int rc)
{
int i,j,k;
for(i=0;i<r;i++)
for(j=0;j<c;j++)
{
m3[i][j]=0;
for(k=0;k<rc;k++)
m3[i][j]+=m1[i][k]*m2[k][j];
}
}
void transpose(int m1[10][10],int m2[10][10], int r, int c)
{
int i,j;
for(i=0;i<r;i++)
for(j=0;j<c;j++)
m2[i][j]=m1[j][i];
}
void rowsum(int m[10][10], int r, int c)
{
int i,j,rs;
cout<<endl<<"Sum of each Row elements";
cout<<endl<<"------------------------";
for(i=0;i<r;i++)
{
rs=0;
for(j=0;j<c;j++)
rs+=m[i][j];
cout<<endl<<rs;
}
cout<<endl<<"========================";
}
void colsum(int m[10][10], int r, int c)
{
int i,j,cs;
cout<<endl<<"Sum of each Column elements";
cout<<endl<<"---------------------------";
for(j=0;j<c;j++)
{
cs=0;
for(i=0;i<r;i++)
cs+=m[i][j];
cout<<endl<<cs;
}
cout<<endl<<"===========================";
}
void maindiag(int m[10][10], int r, int c)
{
int i,mds=0;
if(r==c)
{
for(i=0;i<r;i++)
mds+=m[i][i];
cout<<endl<<"The Sum of Mian Diagonal Elements = "<<mds;
}
else
cout<<endl<<"Invalid Matrix : This is not Square Matrix";
}
void offdiag(int m[10][10], int r, int c)
{
int i,j,ods=0;
if(r==c)
{
for(i=0;i<r;i++)
{
for(j=0;j<r;j++)
if(i+j == r-1)
ods+=m[i][j];
}
cout<<endl<<"The Sum of Off Diagonal Elements = "<<ods;
}
else
cout<<endl<<"Invalid Matrix : This is not Square Matrix";
}
void uptrisum(int m[10][10], int r, int c)
{
int i,j,uts=0;
if(r==c)
{
for(i=0;i<r;i++)
{
for(j=0;j<r;j++)
if(i<j)
uts+=m[i][j];
}
cout<<endl<<"The Sum of Upper Triangular Elements = "<<uts;
}
else
cout<<endl<<"Invalid Matrix : This is not Square Matrix";
}
void lowtrisum(int m[10][10], int r, int c)
{
int i,j,lts=0;
if(r==c)
{
for(i=0;i<r;i++)
{
for(j=0;j<r;j++)
if(i>j)
lts+=m[i][j];
}
cout<<endl<<"The Sum of Lower Triangular Elements = "<<lts;
}
else
cout<<endl<<"Invalid Matrix : This is not Square Matrix";
}
void main()
{
clrscr();
int r1,c1,r2,c2,ch;
int A[10][10],B[10][10],C[10][10];
char yn;
cout<<endl<<"Enter the order of the First Matrix : ";
cin>>r1>>c1;
cout<<endl<<"Enter the order of the Second Matrix : ";
cin>>r2>>c2;
do
{
clrscr();
cout<<endl<<"------";
<<endl<<" 2. Matrix Subtraction"
<<endl<<" 3. Matrix Multiplication"
<<endl<<" 4. Transpose of Matrix"
<<endl<<" 5. Sum of Elements in Each Row"
<<endl<<" 6. Sum of Elements in Each Column"
<<endl<<" 7. Sum of Mian Diagonal Elements"
<<endl<<" 8. Sum of Off Diagonal Elements"
<<endl<<" 9. Sum of Upper Triangular Elements"
<<endl<<"10. Sum of Lower Triangular Elements"
cin>>ch;
switch (ch)
{
case 1: if((r1==r2)&&(c1==c2))
{
matdisplay(C,r1,c1);
}
else
cout<<"Matrices are not confirmable for Addition";
break;
case 2: if((r1==r2)&&(c1==c2))
{
matsub(A,B,C,r1,c1);
matdisplay(C,r1,c1);
}
else
cout<<"Matrices are not confirmable for subtraction";
break;
case 3:if(c1==r2)
{
matprod(A,B,C,r1,c2,c1);
matdisplay(C,r1,c2);
}
else
cout<<"Matrices are not confirmable for multiplication";
break;
case 4: transpose(A,C,r1,c1);
matdisplay(C,r1,c1);
break;
case 5: rowsum(A,r1,c1);
break;
case 6: colsum(A,r1,c1);
break;
case 7: maindiag(A,r1,c1);
break;
case 8: offdiag(A,r1,c1);
break;
case 9: uptrisum(A,r1,c1);
break;
case 10:lowtrisum(A,r1,c1);
break;
}
cout<<endl<<endl<<"To Continue...(Y/y) : ";
cin>>yn;
}
while(toupper(yn)=='Y');
}
```