Code :
- /*Programme d'opérations sur des matrices carrées d'ordre M*/
- Voilà mon programme on sait jamais ça peut servir pour ceux qui tomberont sur le sujet par google ou autre:
- #include <stdio.h>
- #define M 4
- //Définition des fonctions
- void afficher(int tab[M][M]){
- int ligne,colonne;
- printf("\n" );
- for(ligne=0;ligne<M;ligne++){
- for(colonne=0;colonne<M;colonne++)
- printf("\t%d",tab[ligne][colonne]);
- printf("\n" );
- }
- }
-
- void unite(int tab[M][M]){
- int ligne,colonne;
-
- for(ligne=0;ligne<M;ligne++){
- for(colonne=0;colonne<M;colonne++)
- if(colonne==ligne)
- tab[ligne][colonne]=1;
- else
- tab[ligne][colonne]=0;
- }
- }
- void zero(int tab[M][M]){
- int ligne,colonne;
-
- for(ligne=0;ligne<M;ligne++)
- for(colonne=0;colonne<M;colonne++)
- tab[ligne][colonne]=0;
- }
- void initialiser(int tab[M][M]){
- int ligne,colonne;
-
- for(ligne=0;ligne<M;ligne++)
- for(colonne=0;colonne<M;colonne++)
- tab[ligne][colonne]=ligne+colonne;
- }
- void multiplier(int matA[M][M],int matB[M][M],int res[M][M]){
- int ligne,colonne,curs;
- zero(res);
-
- for(ligne=0;ligne<M;ligne++)
- for(colonne=0;colonne<M;colonne++)
- for(curs=0;curs<M;curs++){
- res[ligne][colonne]+=(matA[ligne][curs]*matB[curs][colonne]);
- }
- }
- void additionner(int matA[M][M],int matB[M][M],int res[M][M]){
- int ligne,colonne,curs;
- zero(res);
-
- for(ligne=0;ligne<M;ligne++)
- for(colonne=0;colonne<M;colonne++)
- res[ligne][colonne]=matA[ligne][colonne]+matB[ligne][colonne];
-
- }
- //Début du programmme!
- void main()
- {
- int matriceA[M][M],matriceB[M][M],resultat[M][M];
-
- //Les matrices A et B sont converties en matrices unité:
- unite(matriceA); unite(matriceB);
- afficher(matriceA); afficher(matriceB);
-
- //La matrice qui contiendra le résultat est remplie de zéros:
- zero(resultat); afficher(resultat);
-
- //On multiplie les 2 matrices A et B: on insère le résultat dans la matrice resultat:
- multiplier(matriceA,matriceB,resultat); afficher(resultat);
-
- system("PAUSE" );
- }
|