Título: Matriz Triangular Superior Publicado por: m@o_614 en 27 Junio 2013, 20:43 pm Saludos tengo el siguiente codigo que me tiene que decir si una matriz es triangular superior ( o sea que todos los elementos por debajo de la diagonal sean 0)
Código pero el problema es que cuando le ingreso una matriz que no es Triangular Sup, me aparece que si lo es. Y no tengo idea de donde podria estar el error de antemano gracias Título: Re: Matriz Triangular Superior Publicado por: engel lex en 27 Junio 2013, 21:21 pm asumo que n es el lado de la matriz...
un ejercicio mental para ver como corre 1 2 3 0 1 2 0 0 1 tu algoritmo solo recorre los valores [2][0] [1][0] [2][1] es decir si el valor m(2,1) es 0 eso es correcto... los otros no importan, esto sin importar el tamaño de la matriz... ya que si la matriz es 1 2 3 1 2 3 1 0 3 eso será valido, eso pasa porque no arrastras una valor para medir, sino que simplemente lo alteras como quieres... mejor has Código
(a*=b, quiere decir a=a*b) en ese caso si algún valor es incorrecto tri_sup se multiplicará por 0, y todo lo consecuente será 0 Título: Re: Matriz Triangular Superior Publicado por: ecfisa en 27 Junio 2013, 21:46 pm Hola m@o_614.
Código
Saludos :) Título: Re: Matriz Triangular Superior Publicado por: m@o_614 en 28 Junio 2013, 05:28 am Muchas gracias
ya pude averiguar cual era el fallo del codigo Código el problema de que no me marcaba bien si era triangular superior o no era porque aunque el ciclo ya me habia indicado que no era triangular superior por que algun miembro (matriz[j]) que esta debajo de la diagonal no era 0, el ciclo no se terminaba seguia y seguia, la manera que encontre de solucionarlo ps fue poniendo una bandera en la condicion de que terminara el ciclo cuando tri_sup == 0 engelx n significaba el tamanio de la matriz Título: Re: Matriz Triangular Superior Publicado por: satu en 28 Junio 2013, 11:20 am Buenas!!
m@o_614 tu código se puede mejorar un pelín: Código
Ya estás asumiendo al principio que es triangular superior (tri_sup = 1), entonces solo debes controlar el caso que cambie eso (matriz[ j][ i] != 0) Saludetes Título: Re: Matriz Triangular Superior Publicado por: eferion en 28 Junio 2013, 11:34 am A mi me rechina un poco en el segundo for la instrucción
Código
Funcionar funcionará... pero ese for no queda más claro así? Código
y luego lo que dice satu, ese if else sobra también. Dado que tri_sup tiene un valor inicial 1, el bucle solo debería preocuparse de darle valor 0 cuando proceda... volver a poner un 1 es absurdo, te hace poner más líneas de código que no solo no aportan nada sino que a la larga dificultan la lectura del código. Título: Re: Matriz Triangular Superior Publicado por: engel lex en 28 Junio 2013, 18:21 pm en ese caso en vez de poner tantas condiciones al for no es más facil un break y listo? XD
Título: Re: Matriz Triangular Superior Publicado por: rir3760 en 28 Junio 2013, 18:41 pm Otra forma de verificar si una matriz cuadrada es triangular superior:
Código
Un saludo Título: Re: Matriz Triangular Superior Publicado por: engel lex en 28 Junio 2013, 18:57 pm rir3760
me gustó mucho tu solucion, es un poco rara a primera vista, pero se ve perfecta... pocas lineas, un solo ciclo... Título: Re: Matriz Triangular Superior Publicado por: m@o_614 en 30 Junio 2013, 19:28 pm muchas gracias, ya le hice los cambios que me dijeron y funciona perfecto :D
|