SoloCodigo

Programación Web y Scripting => Python => Mensaje iniciado por: cuazzo en Domingo 20 de Junio de 2010, 23:50

Título: Diagonal secundaria..! no se que hacer :S
Publicado por: cuazzo en Domingo 20 de Junio de 2010, 23:50
Hola, tengo la siguiente duda, me piden que haga el siguiente programa:

Realice un algoritmo en Python con las siguientes caracteristicas:
 La cantidad de filas y columnas de un arreglo se ingresa por teclado.
 Debe ingresar los valores del arreglo desde el teclado.
 Validar que todos los valores del arreglo sean multiplos de 3 sino
 emitir mensaje en la consola 'hay valores no multiplos de 3' y terminar.
Imprimir la diagonal secundaria.
Ej  [6,9,9]
     [3,3,9]
     [9,3,6]

La diagonal secundaria es [9,3,9]

Bien, yo realice lo siguiente:
Código: Python
  1. m=int(raw_input("Ingrese el número de filas: "))
  2. n=int(raw_input("Ingrese el número de columnas: "))
  3.  
  4.  
  5. A=[]
  6. for j in range(m):
  7.   A.append([0]*n)
  8.  
  9. print "Lectura de la matriz A"
  10. for j in range(m):
  11.   for k in range(n):
  12.     A[j][k] = float(raw_input("Dame el componente (%d,%d): " %(j+1,k+1)))
  13.    
  14. for i in A:
  15.   print i
  16.  
  17.  
  18.  
  19. for j in range(m):
  20.   for k in range(n):
  21.     if A[j][k] % 3 == 0:
  22.       print A[j][k]
  23.     else:
  24.       print "No todos los valores son multiplo de 3"
  25.  
  26.  
Pero no se como hacer imprimir la diagonal secundaria!, me re trabo, lo que si se hacer, es imprimir la diagonal principal, haciendo lo siguiente:
Código: Python
  1. C=[]      
  2. for j in range(m):
  3.   for k in range(n):
  4.     if j==k:
  5.       C.append (A[j][k])
  6.      
  7. print  C
  8.  

Pienso que debe ser solo invertir algunas letras, pero lo intente y no me sale, seria de mucha ayuda que me respondan!

Muchas muchas gracias.!
Suerte
Título: Re: Diagonal secundaria..! no se que hacer :S
Publicado por: cbug en Lunes 21 de Junio de 2010, 16:35
Esta sería una manera, no tan eficiente:
Código: Python
  1.  
  2. import random
  3. n=int(input("Ingresa las filasn"))
  4. m=int(input("Ingresa las columnasn"))
  5. matriz=[[0 for x in range(m)]for y in range(n)]
  6. for i in range(n):
  7.     for j in range(m):
  8.         matriz[i][j]=random.randint(0,100)
  9. ##Imprimo la matriz obtenida
  10. print(matriz)
  11. ##Imprimo la diagonal secundaria
  12. C = []
  13. i = 0
  14. j = 0
  15. for i in range(n):
  16.     for j in range(m):
  17.         if(i + j == n - 1):
  18.             C.append(matriz[i][j])
  19. print(C)
  20.  
Título: Re: Diagonal secundaria..! no se que hacer :S
Publicado por: cuazzo en Martes 22 de Junio de 2010, 02:43
Gracias, muchas gracias.!