Está en la página 1de 6

EJERCICIO No 5

Diseñar un algoritmo que nos permita multiplicar dos matrices.

1. ANALISIS
Para poder multiplicar dos matrices, la primera debe tener el mismo número
de columnas que filas la segunda. La matriz resultante del producto quedará
con el mismo número de filas de la primera y con el mismo número de columnas
de la segunda.
Con ayuda de los comandos for y void podremos resolver el ejercicio haciendo
una serie de repeticiones.

2. DIAGRAMA DE FLUJO
3. CODIGO C++
#include<iostream>
using namespace std;
void multiplicacion(double A[50][50],int FA,int CA,double B[50][50],int FB,int
CB,double C[50][50] ){
if(CA==FB){
for(int i=1;i<=FA;i++){
for(int j=1;j<=CB;j++){
C[i][j]=0;
for(int k=1;k<=CA;k++){
C[i][j]=C[i][j]+A[i][k]*B[k][j];
}
}
}
}
}
void llenar_matriz(double M[50][50],int f,int c){
cout<<"Introduzca los datos de la Matriz: "<<endl;
for(int i=1;i<=f;i++){
for(int j=1;j<=c;j++){
cout<<"M["<<i<<"]["<<j<<"]= ";
cin>>M[i][j];
}
}
} void mostrar_matriz(double M[50][50],int f,int c){
cout<<endl;
for(int i=1;i<=f;i++){
for(int j=1;j<=c;j++){
cout<<"["<<M[i][j]<<"]";
}cout<<endl;
}cout<<endl;
} int main (int argc, char *argv[]) {
double A[50][50];
double B[50][50];
double C[50][50];
int fa,ca,fb,cb;
cout<<"\t"<<"MATRIZ A:"<<endl;
cout<<"Introduzca el numero de filas A: ";
cin>>fa;
cout<<"Introduzca el numero de columnas A: ";
cin>>ca;
llenar_matriz(A,fa,ca);
cout<<"\t"<<"\nMATRIZ B:"<<endl;
cout<<"El numero de filas tiene que ser: "<<ca<<", para que se puedan
multiplicar"<<endl;
fb=ca;
cout<<"Introduzca el numero de columnas B: ";
cin>>cb;
llenar_matriz(B,fb,cb);
multiplicacion(A,fa,ca,B,fb,cb,C);
cout<<"\nMATRIZ A:"<<endl;
mostrar_matriz(A,fa,ca);
cout<<"MATRIZ B:"<<endl;
mostrar_matriz(B,fb,cb);
cout<<"MATRIZ AXB:"<<endl;
mostrar_matriz(C,fa,cb);
return 0;
}
4. EJECUCION DEL PROGRAMA EN C++

También podría gustarte