Programme C ++ pour multiplier deux matrices à l'aide de tableaux multidimensionnels

Ce programme prend deux matrices d'ordre respectivement r1 * c1 et r2 * c2. Ensuite, le programme multiplie ces deux matrices (si possible) et l'affiche à l'écran.

Pour comprendre cet exemple, vous devez avoir la connaissance des rubriques de programmation C ++ suivantes:

  • Tableaux multidimensionnels C ++
  • Tableaux C ++

Pour multiplier deux matrices, le nombre de colonnes de la première matrice doit être égal au nombre de lignes de la deuxième matrice. Ce programme affiche l'erreur jusqu'à ce que le nombre de colonnes de la première matrice soit égal au nombre de lignes de la deuxième matrice.

Exemple: multiplier deux matrices sans utiliser de fonctions

 #include using namespace std; int main() ( int a(10)(10), b(10)(10), mult(10)(10), r1, c1, r2, c2, i, j, k; cout <> r1>> c1; cout <> r2>> c2; // If column of first matrix in not equal to row of second matrix, // ask the user to enter the size of matrix again. while (c1!=r2) ( cout << "Error! column of first matrix not equal to row of second."; cout <> r1>> c1; cout <> r2>> c2; ) // Storing elements of first matrix. cout << endl << "Enter elements of matrix 1:" << endl; for(i = 0; i < r1; ++i) for(j = 0; j < c1; ++j) ( cout << "Enter element a" << i + 1 << j + 1 <> a(i)(j); ) // Storing elements of second matrix. cout << endl << "Enter elements of matrix 2:" << endl; for(i = 0; i < r2; ++i) for(j = 0; j < c2; ++j) ( cout << "Enter element b" << i + 1 << j + 1 <> b(i)(j); ) // Initializing elements of matrix mult to 0. for(i = 0; i < r1; ++i) for(j = 0; j < c2; ++j) ( mult(i)(j)=0; ) // Multiplying matrix a and b and storing in array mult. for(i = 0; i < r1; ++i) for(j = 0; j < c2; ++j) for(k = 0; k < c1; ++k) ( mult(i)(j) += a(i)(k) * b(k)(j); ) // Displaying the multiplication of two matrix. cout << endl << "Output Matrix: " << endl; for(i = 0; i < r1; ++i) for(j = 0; j < c2; ++j) ( cout << " " << mult(i)(j); if(j == c2-1) cout << endl; ) return 0; ) 

Production

Entrez les lignes et les colonnes de la première matrice: 3 2 Entrez les lignes et les colonnes de la deuxième matrice: 3 2 Erreur! la colonne de la première matrice n'est pas égale à la ligne de la seconde. Entrez les lignes et les colonnes de la première matrice: 2 3 Entrez les lignes et les colonnes de la deuxième matrice: 3 2 Entrez les éléments de la matrice 1: Entrez les éléments a11: 3 Entrez les éléments a12: -2 Entrez les éléments a13: 5 Entrez les éléments a21: 3 Entrez les éléments a22 : 0 Saisissez les éléments a23: 4 Saisissez les éléments de la matrice 2: Saisissez les éléments b11: 2 Saisissez les éléments b12: 3 Saisissez les éléments b21: -9 Saisissez les éléments b22: 0 Saisissez les éléments b31: 0 Saisissez les éléments b32: 4 Matrice de sortie: 24 29 6 25

Dans ce programme, l'utilisateur est invité à entrer la taille de deux matrices dans un premier temps.

La colonne de la première matrice doit être égale à la ligne de la deuxième matrice pour la multiplication. Si cette condition n'est pas satisfaite alors, la taille de la matrice est à nouveau demandée en utilisant la boucle while.

Ensuite, l'utilisateur est invité à entrer deux matrices et enfin la sortie de deux matrices est calculée et affichée.

Puisque le programme est long et difficile à déboguer, il vaut mieux résoudre ce programme en le passant à une fonction.

Visitez cette page pour en savoir plus sur la multiplication des matrices en passant des tableaux à une fonction.

Articles intéressants...