Producto de Matrices y Ejemplo en C++
Tiempo de lectura: 2.02 minutos
Si estás aprendiendo C++, !esta es una excelente oportunidad para continuar mejorando!
Hoy aprenderemos cómo se realiza un producto de matrices, y cómo implementar un programa sobre ello en C++.
Suma de matrices
El producto de 2 números es la multiplicación directa entre ellos.
La suma de matrices también es una operación directa, donde cada posición de A se suma con su coincidencia en la matriz B.
La matriz resultante C tiene la misma cantidad de filas y columnas, que tienen A y B.
Producto de matrices
Pero el producto de matrices es diferente:
No consiste simplemente multiplicar cada elemento [i][j]
de una matriz A por un elemento en la misma posición en la matriz B.
El producto de matrices tiene cierta peculiaridad, a diferencia de la suma y resta entre matrices.
El producto de matrices consiste en multiplicar cada elemento de una fila en A, con cada elemento de una columna en B.
Programa en C++
A continuación presentamos el código y además un video explicativo que detalla paso a paso la elaboración del programa:
/*
A con k filas y m columnas,
B con m filas y n columnas.
C es la matriz que resulta del producto AB.
C presenta k filas y n columnas.
C[i][j] = A[i][0] * B[0][j] + A[i][1] * B[1][j] + A[i][2] * B[2][j]
+ ... + A[i][m-1] * B[m-1][j]
*/
#include <iostream>
using namespace std;
int main()
{
int A[20][20], B[20][20], C[20][20];
int k, m, n;
cout<<"Lectura de matriz A."<<endl;
cout<<"Filas de A: "; cin>>k;
cout<<"Columnas de A: "; cin>>m;
cout<<endl;
for(int i=0; i<k; ++i)
for(int j=0; j<m; ++j)
{
cout<<"Ingrese valor para A["<<i<<"]["<<j<<"]: ";
cin>>A[i][j];
}
cout<<"Lectura de matriz B."<<endl;
cout<<"Filas de B: "<<m<<" (ya esta definido y es necesario)."<<endl;
cout<<"Columnas de B: "; cin>>n;
cout<<endl;
for(int i=0; i<m; ++i)
for(int j=0; j<n; ++j)
{
cout<<"Ingrese valor para B["<<i<<"]["<<j<<"]: ";
cin>>B[i][j];
}
// Inicializamos la matriz C.
for(int i=0; i<k; ++i)
for(int j=0; j<n; ++j)
C[i][j] = 0;
// Generamos la matriz C.
for(int i=0; i<k; ++i)
for(int j=0; j<n; ++j)
for(int z=0; z<m; ++z)
C[i][j] += A[i][z] * B[z][j];
cout<<"Matriz A: ";
for(int i=0; i<k; ++i)
{
for(int j=0; j<m; ++j)
{
cout<<A[i][j]<<" ";
}
cout<<endl;
}
cout<<"Matriz B: ";
for(int i=0; i<m; ++i)
{
for(int j=0; j<n; ++j)
{
cout<<B[i][j]<<" ";
}
cout<<endl;
}
cout<<"Matriz C: ";
for(int i=0; i<k; ++i)
{
for(int j=0; j<n; ++j)
{
cout<<C[i][j]<<" ";
}
cout<<endl;
}
return 0;
}
Para ver el video sólo haz clic a continuación 🙂: