• Viernes 8 de Noviembre de 2024, 19:44

Autor Tema:  Diagonal secundaria..! no se que hacer :S  (Leído 4168 veces)

cuazzo

  • Nuevo Miembro
  • *
  • Mensajes: 2
    • Ver Perfil
Diagonal secundaria..! no se que hacer :S
« en: Domingo 20 de Junio de 2010, 23:50 »
0
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

cbug

  • Nuevo Miembro
  • *
  • Mensajes: 8
    • Ver Perfil
Re: Diagonal secundaria..! no se que hacer :S
« Respuesta #1 en: Lunes 21 de Junio de 2010, 16:35 »
0
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.  

cuazzo

  • Nuevo Miembro
  • *
  • Mensajes: 2
    • Ver Perfil
Re: Diagonal secundaria..! no se que hacer :S
« Respuesta #2 en: Martes 22 de Junio de 2010, 02:43 »
0
Gracias, muchas gracias.!