Multiplicación de dos matrices

C++Beginner
Practicar Ahora

Introducción

En este laboratorio, aprenderemos cómo encontrar la multiplicación de dos matrices (arreglos bidimensionales) en el lenguaje de programación C++. Lo dividiremos en pasos simples, de modo que incluso los nuevos aprendices puedan seguir sin ningún problema.

Incluye los archivos de encabezado necesarios

Creamos un nuevo archivo llamado main.cpp en el directorio ~/project con el siguiente comando:

touch ~/project/main.cpp

En el primer paso, necesitamos incluir los archivos de encabezado necesarios.

#include <iostream>

Utilizaremos el archivo iostream para tomar la entrada y mostrar la salida.

Define la función main()

En el segundo paso, declararemos la función principal.

int main() {

Define Variables

En el tercer paso, necesitamos declarar variables para almacenar las matrices de entrada y el resultado de la multiplicación.

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

Aquí, row1 y col1 representan el número de filas y columnas de la primera matriz, respectivamente, y row2 y col2 representan el número de filas y columnas de la segunda matriz, respectivamente. Las variables m1, m2 y pro representan las dos matrices de entrada y la matriz del producto.

Obtener la entrada del usuario

En el cuarto paso, obtendremos las matrices del usuario.

std::cout << "\nEnter the number of Rows and Columns of first matrix : ";
std::cin >> row1 >> col1;

std::cout << "\nEnter the number of Rows and Columns of second matrix : ";
std::cin >> row2 >> col2;

// input of first matrix
std::cout << "\nEnter the " << row1 * col1 << " elements of first matrix : \n";
for (i = 0; i < row1; i++) {
    for (j = 0; j < col1; j++) {
        std::cin >> m1[i][j];
    }
}

// input of second matrix
std::cout << "\nEnter the " << row2 * col2 << " elements of second matrix : \n";
for (i = 0; i < row2; i++) {
    for (j = 0; j < col2; j++) {
        std::cin >> m2[i][j];
    }
}

Aquí, tomamos la entrada del usuario para el número de filas y columnas de las dos matrices, y luego tomamos la entrada para cada elemento de las matrices.

Multiplicar matrices

En el quinto paso, multiplicaremos las 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]);
        }
    }
}

Aquí, primero comprobamos si las matrices son válidas para la multiplicación. Si lo son, realizamos la multiplicación como se explicó en la introducción.

Mostrar matrices

En el sexto paso, mostraremos las matrices.

std::cout << "\nThe first matrix is : \n";
for (i = 0; i < row1; i++) {
    for (j = 0; j < col1; j++) {
        std::cout << m1[i][j] << "  ";
    }
    std::cout << std::endl;
}

std::cout << "\nThe second matrix is : \n";
for (i = 0; i < row2; i++) {
    for (j = 0; j < col2; j++) {
        std::cout << m2[i][j] << "  ";
    }
    std::cout << std::endl;
}

std::cout << "\nThe Product matrix is : \n";
for (i = 0; i < row1; i++) {
    for (j = 0; j < col2; j++) {
        std ::cout << pro[i][j] << "  ";
    }
    std::cout << std::endl;
}

Primero mostramos las dos matrices y luego mostramos la matriz resultante.

Compilar y ejecutar el código

Para compilar el código, abra una terminal y navegue hasta el directorio donde se guardó el archivo de código. Ahora, ejecute el siguiente comando para compilar el código:

g++ main.cpp -o main

Después de que el código se haya compilado correctamente, ejecute el siguiente comando para ejecutar el programa:

./main

Resumen

¡Felicidades! Has aprendido cómo encontrar la multiplicación de dos matrices en el lenguaje de programación C++. Hemos aprendido cómo comprobar si las matrices son válidas para la multiplicación, cómo multiplicar matrices y cómo mostrar las matrices de entrada y resultante. Hemos probado el código en un entorno Linux y hemos aprendido cómo compilar y ejecutar el código.