Multiplication de deux matrices

C++C++Beginner
Pratiquer maintenant

💡 Ce tutoriel est traduit par l'IA à partir de la version anglaise. Pour voir la version originale, vous pouvez cliquer ici

Introduction

Dans ce laboratoire, nous allons apprendre à trouver la multiplication de deux matrices (tableaux 2D) dans le langage de programmation C++. Nous allons le diviser en étapes simples, de sorte que même les nouveaux apprenants puissent suivre sans difficulté.

Inclure les fichiers d'en-tête nécessaires.

Nous allons créer un nouveau fichier nommé main.cpp dans le répertoire ~/project en utilisant la commande suivante :

touch ~/project/main.cpp

Dans la première étape, nous devons inclure les fichiers d'en-tête nécessaires.

#include <iostream>

Nous utiliserons le fichier iostream pour prendre des entrées et afficher des sorties.

Définir la fonction main()

Dans la deuxième étape, nous allons déclarer la fonction principale.

int main() {

Définir des variables

Dans la troisième étape, nous devons déclarer des variables pour stocker les matrices d'entrée et le résultat de la multiplication.

int row1, col1, row2, col2, i, j, k;
int m1[10][10], m2[10][10], pro[10][10];

Ici, row1 et col1 représentent respectivement le nombre de lignes et de colonnes de la première matrice, et row2 et col2 représentent respectivement le nombre de lignes et de colonnes de la seconde matrice. Les variables m1, m2 et pro représentent les deux matrices d'entrée et la matrice produit.

Obtenir des entrées de l'utilisateur

Dans la quatrième étape, nous allons obtenir les matrices de l'utilisateur.

std::cout << "\nEntrez le nombre de lignes et de colonnes de la première matrice : ";
std::cin >> row1 >> col1;

std::cout << "\nEntrez le nombre de lignes et de colonnes de la seconde matrice : ";
std::cin >> row2 >> col2;

// entrée de la première matrice
std::cout << "\nEntrez les " << row1 * col1 << " éléments de la première matrice : \n";
for (i = 0; i < row1; i++) {
    for (j = 0; j < col1; j++) {
        std::cin >> m1[i][j];
    }
}

// entrée de la seconde matrice
std::cout << "\nEntrez les " << row2 * col2 << " éléments de la seconde matrice : \n";
for (i = 0; i < row2; i++) {
    for (j = 0; j < col2; j++) {
        std::cin >> m2[i][j];
    }
}

Ici, nous prenons les entrées de l'utilisateur pour le nombre de lignes et de colonnes des deux matrices, puis prenons l'entrée pour chaque élément des matrices.

Multiplier des matrices

Dans la cinquième étape, nous allons multiplier les matrices.

if (col1 == row2) {
    for (i = 0; i < row1; i++) {
        for (j = 0; j < col2; j++) {
            pro[i][j] = 0;
            for (k = 0; k < col1; k++)
                pro[i][j] = pro[i][j] + (m1[i][k] * m2[k][j]);
        }
    }
}

Ici, nous vérifions d'abord si les matrices sont valides pour la multiplication. Si c'est le cas, nous effectuons la multiplication comme expliqué dans l'introduction.

Afficher les matrices

Dans la sixième étape, nous allons afficher les matrices.

std::cout << "\nLa première matrice est : \n";
for (i = 0; i < row1; i++) {
    for (j = 0; j < col1; j++) {
        std::cout << m1[i][j] << "  ";
    }
    std::cout << std::endl;
}

std::cout << "\nLa deuxième matrice est : \n";
for (i = 0; i < row2; i++) {
    for (j = 0; j < col2; j++) {
        std::cout << m2[i][j] << "  ";
    }
    std::cout << std::endl;
}

std::cout << "\nLa matrice Produit est : \n";
for (i = 0; i < row1; i++) {
    for (j = 0; j < col2; j++) {
        std ::cout << pro[i][j] << "  ";
    }
    std::cout << std::endl;
}

Nous affichons d'abord les deux matrices puis la matrice résultante.

Compiler et exécuter le code

Pour compiler le code, ouvrez un terminal et accédez au répertoire où le fichier de code est enregistré. Maintenant, exécutez la commande suivante pour compiler le code :

g++ main.cpp -o main

Une fois le code compilé avec succès, exécutez la commande suivante pour exécuter le programme :

./main

Sommaire

Félicitations ! Vous avez appris à trouver la multiplication de deux matrices dans le langage de programmation C++. Nous avons appris à vérifier si des matrices sont valides pour la multiplication, à multiplier des matrices et à afficher les matrices d'entrée et les matrices résultantes. Nous avons testé le code dans un environnement Linux et avons appris à compiler et à exécuter le code.