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++:
  1. #include <iostream.h>
  2. #include <stdlib.h>
  3.  
  4. int operacion(int [][100], int [][100], int [][100], int , int, int, int);
  5.  
  6. int main()
  7. {
  8.   int f,c,r,f1,f2,c1,c2, m1[100][100], m2[100][100], mr[100][100];
  9.      f1=0; c1=0; f2=0; c2=0;
  10.      while ((f1<1) || (f1>101))
  11.       { cout<<"Introduce las filas de la matriz 1 [1-100]: "; cin>>f1; }
  12.      while ((c1<1) || (c1>101))
  13.       { cout<<"Introduce las columnas de la matriz 1 [1-100]: "; cin>>c1; }
  14.  
  15.      for (f=0; f<=f1; f++)
  16.       {
  17.        for (c=0; c<=c1; c++)
  18.          { cout<<"m1["<<f<<"]["<<c<<"] = "; cin>>m1[f][c]; }
  19.       }
  20.  
  21.      while ((f2<1) || (f2>101))
  22.       { cout<<endl<<"Introduce las filas de la matriz 2 [1-100]: "; cin>>f2; }
  23.      while ((c2<1) || (c2>101))
  24.       { cout<<"Introduce las columnas de la matriz 2 [1-100]: "; cin>>c2; }
  25.  
  26.      for (f=0; f<=f2; f++)
  27.       {
  28.        for (c=0; c<=c2; c++)
  29.          { cout<<"m2["<<f<<"]["<<c<<"] = "; cin>>m2[f][c]; }
  30.       }
  31.  
  32.      r=operacion(m1,m2,mr,f1,f2,c1,c2);
  33.      if (r==-1) cout<<endl<<"No se pudo realizar la operacion ya que el tama帽o de las matrices no es apropiado";
  34.      else
  35.        {
  36.         cout<<endl;
  37.         for (f=0; f<=f1; f++)
  38.           {
  39.            for (c=0; c<=c2; c++)
  40.              cout<<"  "<<mr[f][c]<<"  ";
  41.            cout<<endl;
  42.           }
  43.        }
  44.   cout<<endl<<"Fin de programa..."<<endl;
  45.   system("PAUSE");
  46.   return 0;
  47. }
  48.  
  49. int operacion(int m1[][100], int m2[][100], int mr[][100], int f1, int f2,int c1, int c2)
  50. {
  51.   int f,c,cc;
  52.   if (c1==f2) //si si se pueden sumar/restar
  53.     {
  54.      for (cc=0; cc<=c2; cc++) //recorremos las columnas de B
  55.        {
  56.         for (f=0; f<=f1; f++)
  57.          {
  58.           for (c=0; c<=c1; c++)
  59.             { mr[f][cc]+=m1[f][c]*m2[c][cc]; }
  60.          }
  61.        }
  62.      return 1;
  63.     }
  64.   else
  65.     {return -1;}
  66. }



Espero que te sirva.. El c贸digo esta muy bien comentado. saludos!