elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Introducción a Git (Primera Parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  ayuda diagonal principal y secundaria phyton 3
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: ayuda diagonal principal y secundaria phyton 3  (Leído 2,882 veces)
papess

Desconectado Desconectado

Mensajes: 3


Ver Perfil
ayuda diagonal principal y secundaria phyton 3
« en: 13 Mayo 2019, 13:55 pm »

Hola, soy estudiante de ing. informática y estamos usando python 3,  nos pidieron crear un algoritmo que creara una matriz. hasta ahí creo que todo bien ... pero tengo problemas o bien nose como sacar las diagonales  :-( ... si me pueden ayudar con esto pls.
Les dejo lo que tengo:

fila = 3
columna = 3

matriz =[]
for i in range(fila):
    matriz.append([0]*columna)
print (matriz)

##les da valor a la matriz 1a9
contador=1
for i in range(fila):
    for j in range(columna):
        matriz[j]=contador
        contador+=1
print (matriz)

## ordena la matriz

for i in matriz:
    print (i)
----------- imprimiria lo siguiente, hasta el momento

[[0.0.0],[0.0.0],[0.0.0]]
[[1.2.3],[4.5.6],[7.8.9]]

[1.2.3]
[4.5.6]
[7.8.9]

necesito agregarle el algoritmo que me imprima [1.5.9] .. [3.5.7]
gracias por la ayuda :'(


En línea

Segadorfelix

Desconectado Desconectado

Mensajes: 157



Ver Perfil
Re: ayuda diagonal principal y secundaria phyton 3
« Respuesta #1 en: 13 Mayo 2019, 16:56 pm »

Había un error en el código inicial. En lugar de:

Código:
matriz[j]=contador

era:

Código:
matriz[i][j]=contador

Código
  1. fila = 3
  2. columna = 3
  3.  
  4. matriz =[]
  5. for i in range(fila):
  6.    matriz.append([0]*columna)
  7. print (matriz)
  8.  
  9. ##les da valor a la matriz 1a9
  10. contador=1
  11. for i in range(fila):
  12.    for j in range(columna):
  13.        matriz[i][j]=contador
  14.        contador+=1
  15. print(matriz)
  16.  
  17. ## ordena la matriz
  18.  
  19. for k in matriz:
  20.    print (k)
  21.  
  22. ##Diagonal principal
  23. a=[]
  24. for i in range(fila):
  25.    a.append(matriz[i][i])
  26. print(a)
  27.  
  28. ##Diagonal secundaria
  29. a=[]
  30. for i in range(fila):
  31.    a.append(matriz[i][(columna-1)-i])
  32. print(a)
  33.  

La propiedad que es buena para este tipo de problemas, es tomar en cuenta la estructura de la matriz.

Los elementos de la diagonal principal, siempre serán del tipo fila 1 columna 1, fila 2, columna 2. El 'indice' del elemento de la diagonal, coincide tanto en columnas como en filas.

Los elementos de la diagonal secundaria, son similares a los de la diagonal principal, en que su 'indice' de fila es idéntico, y la diferencia radica, en que parte del ultimo elemento de la fila, y luego va bajando.

Diagonal secundaria, de matriz n*n:
  • fila 1, columna n
  • fila 2, columna n-1
  • fila 3, columna n-2


« Última modificación: 13 Mayo 2019, 17:02 pm por Segadorfelix » En línea

papess

Desconectado Desconectado

Mensajes: 3


Ver Perfil
Re: ayuda diagonal principal y secundaria phyton 3
« Respuesta #2 en: 13 Mayo 2019, 18:51 pm »

wooow ..muchas gracias  :D
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines