27Jan2008
Archivado en: C++, Programaci贸n, Programas Rapidos
Autor: Angel L贸pez
Hola a todos.
Este programa lo que hace es resolver una Multiplicaci贸n de Matrices utilizando ciclos. Es muy sencillo y funciona correctamente
En teor铆a la multiplicaci贸n de matrices se refiere a esto:

y he aqu铆 el c贸digo:
C++:
-
#include <iostream.h>
-
#include <stdlib.h>
-
-
int operacion(int [][100], int [][100], int [][100], int , int, int, int);
-
-
int main()
-
{
-
int f,c,r,f1,f2,c1,c2, m1[100][100], m2[100][100], mr[100][100];
-
f1=0; c1=0; f2=0; c2=0;
-
while ((f1<1) || (f1>101))
-
{ cout<<"Introduce las filas de la matriz 1 [1-100]: "; cin>>f1; }
-
while ((c1<1) || (c1>101))
-
{ cout<<"Introduce las columnas de la matriz 1 [1-100]: "; cin>>c1; }
-
-
for (f=0; f<=f1; f++)
-
{
-
for (c=0; c<=c1; c++)
-
{ cout<<"m1["<<f<<"]["<<c<<"] = "; cin>>m1[f][c]; }
-
}
-
-
while ((f2<1) || (f2>101))
-
{ cout<<endl<<"Introduce las filas de la matriz 2 [1-100]: "; cin>>f2; }
-
while ((c2<1) || (c2>101))
-
{ cout<<"Introduce las columnas de la matriz 2 [1-100]: "; cin>>c2; }
-
-
for (f=0; f<=f2; f++)
-
{
-
for (c=0; c<=c2; c++)
-
{ cout<<"m2["<<f<<"]["<<c<<"] = "; cin>>m2[f][c]; }
-
}
-
-
r=operacion(m1,m2,mr,f1,f2,c1,c2);
-
if (r==-1) cout<<endl<<"No se pudo realizar la operacion ya que el tama帽o de las matrices no es apropiado";
-
else
-
{
-
cout<<endl;
-
for (f=0; f<=f1; f++)
-
{
-
for (c=0; c<=c2; c++)
-
cout<<" "<<mr[f][c]<<" ";
-
cout<<endl;
-
}
-
}
-
cout<<endl<<"Fin de programa..."<<endl;
-
system("PAUSE");
-
return 0;
-
}
-
-
int operacion(int m1[][100], int m2[][100], int mr[][100], int f1, int f2,int c1, int c2)
-
{
-
int f,c,cc;
-
if (c1==f2) //si si se pueden sumar/restar
-
{
-
for (cc=0; cc<=c2; cc++) //recorremos las columnas de B
-
{
-
for (f=0; f<=f1; f++)
-
{
-
for (c=0; c<=c1; c++)
-
{ mr[f][cc]+=m1[f][c]*m2[c][cc]; }
-
}
-
}
-
return 1;
-
}
-
else
-
{return -1;}
-
}
Espero que te sirva.. El c贸digo esta muy bien comentado. saludos!
Dejar comentario