• Viernes 8 de Noviembre de 2024, 19:11

Autor Tema:  Alguien Me Puede Ayudar Con El Error????  (Leído 1357 veces)

kingston

  • Nuevo Miembro
  • *
  • Mensajes: 9
    • Ver Perfil
Alguien Me Puede Ayudar Con El Error????
« en: Lunes 5 de Febrero de 2007, 15:41 »
0
Wenas!

Tengo hecho este código para calcular la potencia enésima de una matriz. Pero el resultado obtenido no es correcto... Alguien podría decirme dónde está mi error???


void MatrizEnesima (int m1[][9], int producto[][9], int filas1, int columnas1, int columnas2) /*funcion matriz enesima*/
{
int i, j, k, n;
int aux[9][9];

/*Asignamos el mismo valor de la matriz m1 a la matriz aux*/
for (i=0; i<filas1; i++)
   {
   for(j=0; j<columnas2; j++)
      {
      aux[j] = m1[j];
      }
   }
   
for(i=1; i<n; i++)
   {
   MultiplicarMatrices(m1, aux, producto, columnas1, filas1, columnas2);
      for (j=0; j<filas1; j++)                   /*Copiamos la matriz resultante en aux*/
             {
         for(k=0; k<columnas2; k++)
            {
            producto [j][k]= aux[j][k];
            }
         }
   }
}








La función MultiplicarMatrices funciona correctamente. Com habeis podido observar, se trata de programación en C.

Gracias

hano

  • Miembro activo
  • **
  • Mensajes: 87
    • Ver Perfil
Re: Alguien Me Puede Ayudar Con El Error????
« Respuesta #1 en: Lunes 5 de Febrero de 2007, 16:24 »
0
¿Cuando inicializas 'n'?
¿No debería ser un parámetro?

Luis Javier López Arredondo
                                                                                               
Para programadores
http]
[url=https://hardprogrammer.blogspot.com]https]

kingston

  • Nuevo Miembro
  • *
  • Mensajes: 9
    • Ver Perfil
Re: Alguien Me Puede Ayudar Con El Error????
« Respuesta #2 en: Lunes 5 de Febrero de 2007, 17:13 »
0
:( ... No me habia dado cuenta, pero he probado iniciándola y tampoco me da el resultado...  Algún error más?

Gracias.

hano

  • Miembro activo
  • **
  • Mensajes: 87
    • Ver Perfil
Re: Alguien Me Puede Ayudar Con El Error????
« Respuesta #3 en: Lunes 5 de Febrero de 2007, 17:45 »
0
1. Comprueba que el método de multiplicar matrices no modifica las originales, que inicializa todo correctamente y no hay efectos colaterales de su invocación.

2. Por lo que puedo deducir, la función MultiplicarMatrices hace producto=m1*aux, luego, pregunto, ¿no debería ser como sigue?
Código: Text
  1.  for(k=0; k&#60;columnas2; k++)
  2. {
  3. aux[j][k] = producto [j][k];
  4. }
  5.  
De hecho, es lo que diche el comentario (/*Copiamos la matriz resultante en aux*/), pero lo hace alrevés.

3. ¿Influye en el resultado que las multiplicaciones se realicen por la izquierda? ¿Y si lo haces por la derecha?

Luis Javier López Arredondo
                                                                                               
Para programadores
http]
[url=https://hardprogrammer.blogspot.com]https]

kingston

  • Nuevo Miembro
  • *
  • Mensajes: 9
    • Ver Perfil
Re: Alguien Me Puede Ayudar Con El Error????
« Respuesta #4 en: Lunes 5 de Febrero de 2007, 18:05 »
0
He cambiado el punto 2 que me has dicho pero sigue sin salir...

¿Cómo puedo comprobar esto??

 1. Comprueba que el método de multiplicar matrices no modifica las originales, que inicializa todo correctamente y no hay efectos colaterales de su invocación.


Y el punto 3, no comprendo a qué te refieres, porque no es lo mismo multiplicarla a la izquierda que a la derecha...

3. ¿Influye en el resultado que las multiplicaciones se realicen por la izquierda? ¿Y si lo haces por la derecha?De hecho, es lo que diche el comentario (/*Copiamos la matriz resultante en aux*/), pero lo hace alrevés.


Gracias.