Título: Ayuda con ejercicio de matrices transpuestas y simetricas Publicado por: dato000 en 18 Diciembre 2013, 02:58 am Buenas amigos, mi problema es el siguiente, se supone que debo hacer una matriz simetrica, y pues lo primero es realizar es una matriz transpuesta porque pues, de eso se trata aprender no?? ;-) ;-) verán, en el ejercicio me dicen que use indexación y aritmetica de apuntadores, para no alargar mucho el tema, dejo el enunciado:
Citar Escribir un programa que encuentre una matriz de números reales simétrica. Para ello una función entera con entrada a la matriz determinará si ésta es simétrica. En otra función se generará la matriz con números aleatorios de 1 a 19. Utilizar aritmética de apuntadores en la primera función; en la segunda, indexación. En el ejercicio, pues como verán, lo hice de las dos formas, no de sobrado, sino por saber como trabajan por separado. Y pues mi problema no nisiquiera de programación, sino que no he podido dar con el chiste de hacer una maldita matriz transpuesta, cambiando de lugar los elementos de la matriz para que luego deba hacer la comprobación de si existe o no una matriz simétrica. Para que me entiendan dejo el ejemplo de una matriz transpuesta: (http://www.vitutor.org/algebra/matrices/images/10_0.gif) Donde se puede ver, que los elementos de las filas y las columnas quedan "transpuestos" unos con otros, menos la diagonal principal, cambiando de lugar, la simetria se da cuando después del cambio los valores númericos de los elementos siguen siendo los mismos, de esta forma: (http://www.psico.uniovi.es/Dpto_Psicologia../metodos/tutor.3/mat4.gif) Y pues mi problema radica en que no he podido hacer la transposición, ya trate de varias maneras, pero me falla la lógica, no he podido dar con el chiste, me dan una mano amig@s??? he aquí el código, no es nada complicado: Código
Si ven las librerias adicionales como "cstdio" o "cstdlib" era porque estaba probando el tipico caso de printf vs cout. Aunque creo que srand() debe funcionar con cstdlib...en fin, no da problemas de compilación, el problema esta en la función "transpuesta(int **matriz, int tam)", pues no he podido dar con el truco de transponer los elementos. Les agradezco el interés y la ayuda, slsd ;-) ;-) Título: Re: Ayuda con ejercicio de matrices transpuestas y simetricas Publicado por: leosansan en 18 Diciembre 2013, 07:16 am Si lo piensa más despacio seguro lo sacas sin problemas. Por si acaso te paso la función transponer corregida:
Código
Tenias dos fallos lógicos, por un lado sólo aplicabas los cambios a la diagonal- i==j- con lo que no cambia nada-, y por otro lado al recorrer la matriz al completo, lo que haces en una mitad lo deshaces en la siguiente mitad. Por cierto, ¿no te falta un delete al final del main?. Saluditos! ..... !!!! (http://st.forocoches.com/foro/images/smilies/aaaaa.gif) Título: Re: Ayuda con ejercicio de matrices transpuestas y simetricas Publicado por: dato000 en 18 Diciembre 2013, 17:51 pm Tenias dos fallos lógicos, por un lado sólo aplicabas los cambios a la diagonal- i==j- con lo que no cambia nada-, Cierto, lo venia pensando ahora que regresaba a mi casa, lo que queria decir que es que fuera diferente a la diagonal i != j pero no cai en cuenta de ese minusculo descuido :xD y por otro lado al recorrer la matriz al completo, lo que haces en una mitad lo deshaces en la siguiente mitad. Ummmmm tienes razón, no pense en ese detalle, seguro que me hubiera atascado nuevamente con eso.Por cierto, ¿no te falta un delete al final del main?. [/size] Saluditos! ..... !!!! (http://st.forocoches.com/foro/images/smilies/aaaaa.gif) Es que no habia llegado a ese punto porque me quede pensando en la función de la transpuesta. Pero luego de eso implemento correctamente el código. Código
es así verdad como se hace cierto?? Muchas gracias. Título: Re: Ayuda con ejercicio de matrices transpuestas y simetricas Publicado por: leosansan en 18 Diciembre 2013, 17:59 pm De nada, encantado de poder ayudar a un colega como tú.
Saluditos! ..... !!!! (http://st.forocoches.com/foro/images/smilies/aaaaa.gif) Título: Re: Ayuda con ejercicio de matrices transpuestas y simetricas Publicado por: rir3760 en 18 Diciembre 2013, 18:04 pm Es que no habia llegado a ese punto porque me quede pensando en la función de la transpuesta. Pero luego de eso implemento correctamente el código. Primero debes liberar la memoria de cada fila y a continuación la memoria del bloque principal:Código es así verdad como se hace cierto?? Código
Un saludo Título: Re: Ayuda con ejercicio de matrices transpuestas y simetricas Publicado por: dato000 en 18 Diciembre 2013, 18:42 pm Primero debes liberar la memoria de cada fila y a continuación la memoria del bloque principal: Código
Un saludo Ok, vale muchas gracias, me queda claro entonces, ya lo implemente, dejo el código completo por si tal vez un futuro (usando google o duckduckgo o pues alguien que tenga la tarea y use cualquier buscador) alguien lo necesita. Código
|