fbpx

Responder a: Ayuda ejemplo 5. Matrices

  • Diego Don

    Miembro
    21 julio, 2020 en 11:15 pm

    Hola a Todos!

    Antes que nada, y agradeciendo nuevamente el curso gratuito, iba a publicar una discusión aparte pero me puse a buscar y encontré esta en referencia al tema del ejemplo 5 de matrices (Lección 14, Tema 7: https://www.azulschool.net/topic/ejemplo-5-saber-si-una-matriz-es-simetrica/)

    Entiendo, y espero me indiquen si comparten o no lo que digo, que el ejemplo que se muestra en el video, en cuanto al valor que se asigna a la variable condicion de la línea 31, siempre va a terminar quedando en V sea cual fuera los datos de la matriz y siempre y cuando sea cuadrada.

    ¿Por qué digo esto?:

    1. Los ciclos FOR anidados de las líneas 29 y 30, comienzan y terminan en (0,0) y (fila-1,columna-1), por lo cual, por más que tenga cualquier matriz cuadrada transpuesta, siempre esos valores pertenecen a las “puntas” de la diagonal y nunca cambiarán de lugar con respecto a la matriz original.
    2. Como la condición del IF en la línea 30 es de igualdad y solo va cambiando el valor de condicion dentro de los FOR anidados pero sin dejar de recorrer/comparar toda la matriz, siempre termina en (fila-1,columna-1)=(columna-1,fila-1), generando que siempre termine en V y, finalmente, indicando que la matriz es simétrica.
    3. En el ejemplo del video solo se tomó una matriz que no era cuadrada para indicar que no era simétrica (Paso que comprobaría al comienzo para avisar al usuario que ya no será posible que sea simétrica dado que no es cuadrada), y luego se toma como ejemplo de aplicación una matriz que, de antemano, se sabe que es simétrica.
    4. Si prueban cargar una matriz con valores aleatorios (que no coincidan justamente con una matriz simétrica), el programa de ejemplo seguirá indicando que es simétrica por lo antes mencionado.

    Por favor, si hay algo en lo que me equivoco y comprendí mal, háganmelo saber y aprovecho a su vez para compartirles mi código donde cambié la condición para que, si la comparación ya es distinta, no siga recorriendo el ciclo FOR e indique que no es simétrica (Usé el break que, de paso, me gustaría saber si estaría bien aplicado), también agregué la impresión de ambas matrices para que se vea fácilmente el resultado de la transpuesta (En cuanto a verificar que ya no podrá ser simétrica al comienzo del programa si fila!=columna, no lo modifiqué en cuanto al ejemplo y solo agregué una nota en la línea 70):

    https://onlinegdb.com/r1mro4Blw

    Desde ya, agradezco sus comentarios.

    Saludos!

    Ejemplo 5.- Saber si una matriz es simétrica.