PDA

View Full Version : عملیات متداول روی ماتریسهای n*n



Salar Ashgi
سه شنبه 29 مرداد 1387, 14:53 عصر
این کد رو که تو سی پلاس پلاس نوشتم ، برای انجام عملیات متداول روی ماتریسهای n*n

از جمله (ضرب دوماتریس n*n ، ترانهاده یک ماتریس n*n و جمع دوماتریس n*n ) ،

خدمت شما عزیزان :



#include <iostream>
#include <conio>
#include <iomanip>
int main(){
int n;//size of matrix A & B
cout<<"*** Matrix Program By Salar ***\n\n";
cout<<"Enter Size of Matrixes ( A & B)\n";
cin>>n;
//********* Creating Mat A[n][n] **************************
int **a=new int*[n];
for(int i=0;i<n;i++)
a[i]=new int[n];
//********* Creating Mat B[n][n] **************************
int **b=new int*[n];
for(int i=0;i<n;i++)
b[i]=new int[n];
//********* Creating Mat c[n][n]=A[n][n] x B[n][n] ********
int **c=new int*[n];
for(int i=0;i<n;i++)
c[i]=new int[n];
for(int i=0;i<n;i++){
for(int j=0;j<n;j++)
c[i][j]=0;
}
//******* Reading Matrixes ***********
cout<<"Enter Matrix A\n";
for(int i=0;i<n;i++){
cout<<"Row"<<i+1<<": ";
for(int j=0;j<n;j++)
cin>>a[i][j];
}
cout<<"------------------\n";
cout<<"Enter Matrix B\n";
for(int i=0;i<n;i++){
cout<<"Row"<<i+1<<": ";
for(int j=0;j<n;j++)
cin>>b[i][j];
}
cout<<"------------------\n";
//******* Calculating Mat C= AxB **************
for(int i=0;i<n;i++){
for(int j=0;j<n;j++){
for(int k=0;k<n;k++)
c[i][j]=c[i][j]+(a[i][k]*b[k][j]); }
}
//************ Showing Mat C=AxB***************
cout<<" AxB :\n";
for(int i=0;i<n;i++){
for(int j=0;j<n;j++)
cout<<c[i][j]<<setw(4);
cout<<endl;
}
cout<<"------------------\n";
//***********Teranahde Mat A & B*****************
//**** Tr A ********
cout<<" Teranahade A:\n";
for(int i=0;i<n;i++){
for(int j=0;j<n;j++)
cout<<a[j][i]<<setw(4);
cout<<endl;
}
//***** Tr B *******
cout<<" Teranahade B:\n";
for(int i=0;i<n;i++){
for(int j=0;j<n;j++)
cout<<b[j][i]<<setw(4);
cout<<endl;
}
cout<<"-----------------\n";
//******* Creating Sum of two Mat **********
int **s=new int*[n];
for(int i=0;i<n;i++)
s[i]=new int[n];
for(int i=0;i<n;i++){
for(int j=0;j<n;j++)
s[i][j]=0;
}
for(int i=0;i<n;i++){
for(int j=0;j<n;j++)
s[i][j]=a[i][j]+b[i][j];
}
cout<<" A+B :\n";
for(int i=0;i<n;i++){
for(int j=0;j<n;j++)
cout<<s[i][j]<<setw(4);
cout<<endl;
}
//*****************************************
getch();
}


موفق باشید !!!!:لبخندساده:

rezaah
جمعه 01 شهریور 1387, 19:50 عصر
منم يه برنامه دارم كه ميشه مقادير ويژه و بردارهاي ويژه رو حساب كرد باهاش.خواستين بگين

rezaah
جمعه 01 شهریور 1387, 19:51 عصر
دارم يكي ديگه هم مينويسم كه مجموع قدر مطلقهاي مقادير ويژه رو حساب كنه.چون مختلط يك كم سخته خوب