1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80
| # include <iostream>
# include <cmath>
using namespace std;
/*lecture de deux matrices carrées*/
void lecture (double X[][10],int a)
{
int I,J;
for (I=0;I<a;I++)
for (J=0;J<a;J++)
{
cout<<"donner votre element "<<I<<" , "<<J<<endl;
cin>>X[I][J];
}
}
/* affichage de la matrice*/
void affichage(double X[][10],int a)
{
int I,J;
cout<<"votre matrice est la suivante:"<<endl;
for (I=0;I<a;I++)
{
for (J=0;J<a;J++)
cout<<X[I][J]<<" ";
cout<<endl;
cout<< " FIN "<<endl;
}
}
void produit(double X[][10],double Y[][10],double Z[][10],int a)
{
int I,J,K;
//initialisation de la matrice C
for (I=0;I<a;I++)
for (J=0;J<a;J++)
Z[I][J]=0;
// Calcul de la matrice C=A*B
for (I=0;I<a;I++)
for (J=0;J<a;J++)
for (K=0;K<a;K++)
Z[I][J]=Z[I][J]+X[I][K]*Y[K][J];
}
void puissance (double X[][10],double CB[][10],int a)
{
double Ck[10][10];
int i,j,k,L;
cout<<"donner la valeur de k pour caculer C^k"<<endl;
cin>>k;
for(i=0;i<a;i++)
for(j=0;j<a;j++)
Ck[i][j]=X[i][j];
for(L=1;L<k;L++)
{produit(X,Ck,CB,a);
for(i=0;i<a;i++)
for(j=0;j<a;j++)
Ck[i][j]=CB[i][j];
}
}
int main()
{
int n;
double A[10][10],B[10][10],C[10][10],CP[10][10];
cout<<"donnez la taille des matrices"<<endl;
cin>>n;
cout<<"lecture de la matrice A"<<endl;
lecture(A,n);
cout<<"lecture de la matrice B"<<endl;
lecture(B,n);
produit(A,B,C,n);
cout<<"affichage des elements de la matrice A "<<endl;
affichage( A,n);
cout<<"affichage des elements de la matrice B "<<endl;
affichage( B,n);
cout<<"affichage des elements de la matrice C "<<endl;
affichage(C,n);
puissance (C,CP,n);
cout<<"la matrice de puissance k "<<endl;
affichage(CP,n);
system("PAUSE");
return 0;
} |
Partager