Matrix Operations in C Language
Implement following Matrix operations as Given Below:
- Addition with arrays.
- Multiplication without pointers to arrays
- Transpose with arrays
- Saddle point without pointers to arrays
Matrix Operations in C Code
1 |
#include <br/> #include <br/> template <br/> class matrix <br/> { <br/> public: <br/> T mat[10][10]; <br/> int i; <br/> matrix() <br/> { <br/> cout<<"\n\tMATRIX IS:"; <br/> for(i=0;i<m;i++) <br=""> for(j=0;j<n;j++) <br=""> mat[i][j]=0; <br/> } <br/> matrix(int m,int n) <br/> { <br/> cout<<"\n\tMATRIX IS:"; <br/> for(int i=0;i<m;i++) <br=""> for(int j=0;j<n;j++) <br=""> cin>>mat[i][j]; <br/> } <br/> void display(int m,int n) <br/> { <br/> for(int i=0;i<m;i++) <br=""> { <br/> cout<<"\n"; <br/> for(int j=0;j<n;j++) <br=""> { <br/> cout<<"\t"; <br/> cout<<mat[i][j]; <br=""> } <br/> } <br/> getch(); <br/> } <br/> }; <br/> template <br/> void add(T1 mat1,T2 mat2,int r,int c) <br/> { <br/> int i,j; <br/> float mat[20][20]; <br/> for(i=0;i<r;i++) <br=""> { <br/> for(j=0;j<c;j++) <br=""> { <br/> mat[i][j]=mat1[i][j]+mat2[i][j]; <br/> } <br/> } <br/> disp_res(mat,r,c); <br/> getch(); <br/> } <br/> template <br/> void disp_res(T mat,int m,int n) <br/> { <br/> for(int i=0;i<m;i++) <br=""> { <br/> cout<<"\n"; <br/> for(int j=0;j<n;j++) <br=""> { <br/> cout<<"\t"; <br/> cout<<mat[i][j]; <br=""> } <br/> } <br/> getch(); <br/> } <br/> template <br/> void sub(T1 mat1,T2 mat2,int r,int c) <br/> { <br/> int i,j; <br/> float mat[20][20]; <br/> for(i=0;i<r;i++) <br=""> { <br/> for(j=0;j<c;j++) <br=""> { <br/> mat[i][j]=mat1[i][j]-mat2[i][j]; <br/> } <br/> } <br/> disp_res(mat,r,c); <br/> getch(); <br/> } <br/> template <br/> void mul(T1 mat1,T2 mat2,int r,int c,int a) <br/> { <br/> int i,j,k; <br/> float mat[10][10]; <br/> for(i=0;i<r;i++) <br=""> { <br/> for(j=0;j<a;j++) <br=""> { <br/> mat[i][j]=0; <br/> for(k=0;k<c;k++) <br=""> mat[i][j]+=mat1[i][k]*mat2[k][j]; <br/> } <br/> } <br/> disp_res(mat,r,a); <br/> getch(); <br/> } <br/> template <br/> void trans(T mat,int m,int n) <br/> { <br/> int i,j; <br/> T t; <br/> if(m>=n) <br/> { <br/> for(i=0;i<m;i++) <br=""> { <br/> for(j=0;j<i;j++) <br=""> { <br/> t[i][j]=mat[i][j]; <br/> mat[i][j]=mat[j][i]; <br/> mat[j][i]=t[i][j]; <br/> } <br/> } <br/> disp_res(mat,n,m); <br/> } <br/> else <br/> { <br/> for(i=0;i<n;i++) <br=""> { <br/> for(j=0;j<i;j++) <br=""> { <br/> t[i][j]=mat[i][j]; <br/> mat[i][j]=mat[j][i]; <br/> mat[j][i]=t[i][j]; <br/> } <br/> } <br/> disp_res(mat,m,n); <br/> } <br/> getch(); <br/> } <br/> void main() <br/> { <br/> int ch,r,c,ch1; <br/> matrixt3(); <br/> do <br/> { <br/> clrscr(); <br/> cout<<"\n\t##### MATRIX OPERATIONS ######" <br/> <<"\n\t1.INPUT" <br/> <<"\n\t2.DISPLAY" <br/> <<"\n\t3.ADDITION" <br/> <<"\n\t4.SUBTRACTION" <br/> <<"\n\t5.MULTIPLICATION" <br/> <<"\n\t6.TRANSPOSE" <br/> <<"\n\t7.EXIT"; <br/> cout<<"\n\tENTER UR CHOICE:"; <br/> cin>>ch; <br/> switch(ch) <br/> { <br/> case 1: <br/> cout<<"\n\tENTER NO. OF ROWS:"; <br/> cin>>r; <br/> cout<<"\n\tENTER NO. OF COLUMNS:"; <br/> cin>>c; <br/> matrixt1(r,c); <br/> matrixt2(r,c); <br/> break; <br/> case 2: do <br/> { <br/> cout<<"\n\t#### DISPLAY MENU ####"; <br/> cout<<"\n\t1.1st MATRIX"; <br/> cout<<"\n\t2.2nd MATRIX"; <br/> cout<<"\n\t3.EXIT"; <br/> cout<<"\n\tENTER UR CHOICE:"; <br/> cin>>ch1; <br/> clrscr(); <br/> switch(ch1) <br/> { <br/> case 1: cout<<"\n\t1st MATRIX"; <br/> t1.display(r,c); <br/> break; <br/> case 2: cout<<"\n\t2nd MATRIX"; <br/> t2.display(r,c); <br/> break; <br/> case 3: break; <br/> } <br/> }while(ch1!=3); <br/> break; <br/> case 3: cout<<"\n\tADDITION IS:"; <br/> add(t1.mat,t2.mat, r,c); <br/> break; <br/> case 4: cout<<"\n\tSUBTRACTION IS:"; <br/> sub(t1.mat,t2.mat, r,c); <br/> break; <br/> case 5: cout<<"\n\tMULTIPLICATION IS:"; <br/> mul(t1.mat,t2.mat, r,c,r); <br/> break; <br/> case 6: do <br/> { <br/> cout<<"\n\t#### TRANSPOSE MENU ####"; <br/> cout<<"\n\t1.1st MATRIX"; <br/> cout<<"\n\t2.2nd MATRIX"; <br/> cout<<"\n\t3.EXIT"; <br/> cout<<"\n\tENTER UR CHOICE:"; <br/> cin>>ch1; <br/> clrscr(); <br/> switch(ch1) <br/> { <br/> case 1: cout<<"\n\tTRANSPOSE OF 1st MATRIX:"; <br/> trans(t1.mat,r,c); <br/> trans(t1.mat,r,c); <br/> break; <br/> case 2: cout<<"\n\tTRANSPOSE OF 2nd MATRIX:"; <br/> trans(t2.mat,r,c); <br/> trans(t2.mat,r,c); <br/> break; <br/> case 3: break; <br/> } <br/> }while(ch1!=3); <br/> break; <br/> case 7: <br/> break; <br/> } <br/> }while(ch!=7); <br/> } |
Source projectgeek.com