Data Structures using c++ :Source codes collection
1.Multiplication of Two Matrices
#include<iostream.h>
#include<conio.h>
class matrix
{
int a[10][10], m,n;
public:
matrix()
{
}
matrix(int m,int n)
{
this->m=m;
this->n=n;
}
void set_mat()
{
for(int i=0;i<m;i++)
for(int j=0;j<n;j++)
a[i][j]=0;
}
void read_mat();
void disp_mat();
void mul_mat(matrix,matrix);
};
void matrix :: read_mat()
{
for(int i=0;i<m;i++)
for(int j=0;j<n;j++)
{
cout<<"enter element "<<i+1<<","<<j+1<<"?";
cin>>a[i][j];
}
}
void matrix :: disp_mat()
{
cout<<"Matrix Elements:
";
for(int i=0;i<m;i++)
{
for(int j=0;j<n;j++)
cout<<a[i][j]<<" ";
cout<<endl;
}
}
void matrix :: mul_mat(matrix m1,matrix m2)
{
if(m1.n!=m2.m)
cout<<"matrix multiplication is not possible ";
else
{
for(int i=0;i<m1.m;i++)
for(int j=0;j<m1.n;j++)
for(int k=0;k<m2.n;k++)
{
a[i][j]+=m1.a[i][k]*m2.a[k][j];
}
}
}
void main()
{
int m,n,p,q;
clrscr();
cout<<"enter first matrix size ?";
cin>>m>>n;
matrix m1(m,n);
m1.read_mat();
cout<<"enter second matrix size ?";
cin>>p>>q;
matrix m2(p,q);
m2.read_mat();
matrix m3(m,q);
m3.set_mat();
m3.mul_mat(m1,m2);
m1.disp_mat();
m2.disp_mat();
m3.disp_mat();
getch();
}