Friday, January 9, 2015

Matrix Multipication in C++

#include<iostream.h>
#include<conio.h>
#include<math.h>
int k=0;
class matrix
{
int **a;
int p,q;
public:
matrix()
{
}
void getdata(int m,int n);
matrix operator*(matrix y);
void display();

};
void matrix::getdata(int m,int n)
{
p=m;
q=n;
cout<<"enter the elements of matrix";
a=new int*[m];
for(int i=0;i<m;i++)
{
a[i]=new int[n];
}
for(i=0;i<p;i++)
{
for(int j=0;j<q;j++)
{
cin>>a[i][j];
}
}
}
matrix matrix::operator*(matrix y)
{
matrix c;
if(q==y.p)
{
c.p=p;
c.q=y.q;
c.a=new int*[p];
for(int i=0;i<p;i++)
{
c.a[i]=new int[y.q];
}
for(i=0;i<p;i++)
{
for(int j=0;j<y.q;j++)
{
c.a[i][j]=0;
for(k=0;k<q;k++)
{
c.a[i][j]=c.a[i][j]+a[i][k]*y.a[k][j];
}
}
}
}
else
{
cout<<"multipication not possible";
k=1;
}
return c;
}
void matrix::display()
{
for(int i=0;i<p;i++)
{
for(int j=0;j<q;j++)
{
cout<<a[i][j]<<" ";
}
cout<<"\n";
}
}
void main()
{
matrix a[4],b;
int i,j,q,m,n;
cout<<"enter the matrix number";
cin>>q;
for(i=0;i<q;i++)
{
cout<<"enter the matrix"<<(i+1)<<"number size";
cin>>m>>n;
a[i].getdata(m,n);
}
for(i=0;i<q;i++)
{
if(i==0||i==1)
{
b=a[0]*a[1];
}
else
{
b=b*a[i];
}
}
b.display();
}


for more learning codes visit to http://codesofprogramming.blogspot.in/

No comments:

Post a Comment