A continuación, vamos a ver un sencillo código escrito en C++ que permite multiplicar dos matrices de 3 x 3. Cada uno de los valores de los elementos serán ingresados por el usuario y posteriormente mediante un ciclo for se hará la multiplicación de matrices y se imprimirá la matriz resultante en pantalla.
#include <iostream>
using namespace std;
int main() {
int a[3][3], b[3][3], c[3][3]; // Definimos las matrices de entrada y la matriz resultado
// Pedimos al usuario que ingrese los valores de la primera matriz
cout << "Ingrese los valores de la primera matriz (columna, fila):" << endl;
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 3; j++) {
cout << "Ingrese el valor del elemento " << i+1 << "," << j+1 << ": ";
cin >> a[i][j];
}
}
cout << endl; // Añadimos un espacio para separar las matrices
// Pedimos al usuario que ingrese los valores de la segunda matriz
cout << "Ingrese los valores de la segunda matriz (columna, fila):" << endl;
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 3; j++) {
cout << "Ingrese el valor del elemento " << i+1 << "," << j+1 << ": ";
cin >> b[i][j];
}
}
cout << endl; // Añadimos un espacio para separar las matrices
// Multiplicamos las dos matrices
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 3; j++) {
c[i][j] = 0; // Inicializamos el valor de la matriz resultado en 0
for (int k = 0; k < 3; k++) {
c[i][j] += a[i][k] * b[k][j];
}
}
}
// Mostramos la matriz resultado
cout << "La matriz resultante es:" << endl;
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 3; j++) {
cout << c[i][j] << " ";
}
cout << endl;
}
return 0;
}
El programa funciona de la siguiente manera: Primero, se definen dos matrices de entrada, A y B, y la matriz resultante, C. Luego, se pide al usuario que ingrese el valor de cada uno de los elementos de la primera matriz, mediante un bucle for, y se almacena en la matriz a[i][j]. Se realiza el mismo procedimiento con la segunda matriz b[i][j]. Finalmente se multiplican las dos matrices a y b utilizando otro ciclo for y la fórmula matemática correspondiente.
Recordemos que para realizar una multiplicación de dos matrices debemos seguir el siguiente procedimiento:
1.- Verificar que el número de columnas de la matriz A sea igual al número de filas de la matriz B. Si no se cumple esta condición, no es posible realizar la multiplicación entre las dos matrices.
2.- Crear una nueva matriz C, con un número de filas igual al número de filas de la matriz A y con un número de columnas igual al número de columnas de la matriz B.
3.- Para cada elemento c[i][j] en la matriz C, se debe realizar la siguiente operación:
c[i][j] = Σ(k = 1, n) a[i][k] * b[k][j]
Donde a[i][k] y b[k][j] son los elementos de las matrices A y B, respectivamente, y n es el número de columnas de la matriz A o el número de filas de la matriz B.
El resultado de la multiplicación se guardará en la matriz C. Y finalmente se imprime en pantalla.
El código ha sido probado en Code::Blocks en Windows, por lo que es completamente funcional.
NOTA: Si al correr el programa los acentos o caracteres especiales no se muestran correctamente, puedes usar esta solución: ¿Cómo mostrar acentos y caracteres especiales en programas escritos en C++?