Ver Mensaje Individual
  #1 (permalink)  
Antiguo 18/11/2013, 12:54
matiasvalle_2
 
Fecha de Ingreso: noviembre-2013
Mensajes: 5
Antigüedad: 10 años, 5 meses
Puntos: 0
indexacion de numeros en una matriz en python

hola les traigo haber si me pueden ayudar con un simple paso que no me sale en un trabajo, lo unico que no me sale de lo siguiente es el paso 8 y 9, lo demas me sale

este es el trabajo:

Paso 1: ingrese por consola la cantidad de filas fil de un arreglo cuadrado
# veifique que el valor sea mayor que 5 y menor que 17, si ello
# no ocurre pedir hasta que cumpla con la condicion.
# Paso 2: construir una lista con los dos primeros terminos de Fibonacci
# y mostrar por consola
# Paso 3: extender la lista con numeros de Fibonacci hasta que la cantidad
# de elementos sea igual a fil+5
# Paso 4: mostrar por consola la lista extendida
# Paso 5: eliminar de la lista los primeros 5 elementos y mostrar por
# consola la lista recortada
# Paso 6: crear un arreglo de fil filas y fil columnas inicializado en 0
# Paso 7: poner sobre la diagonal principal los elementos de la lista
# recortada de Fibonacci y mostrar por consola
# Paso 8: rellenar la matriz a partir de la diagonal principal con el
# siguientes criterios:
# M[i][i+1]= M[i][i]-2, M[i][i+2]= M[i][i+1]-2 (a la derecha)
# M[i][i-1]= M[i][i]+2, M[i][i-2]= M[i][i-1]22 (a la izquierda)
# Paso 9: muestre sobre consola la matriz rellenada
# Paso 10:sume todos los elementos impares del arreglo y muestrelo en consola
# Paso 11:cuente todos los elementos pares del arreglo y muestrelo en consola





y este es mi codigo hasta ahora


Código Python:
Ver original
  1. def numeros_impares(matriz):
  2.   sumatorio = 0
  3.   for i in range(len(matriz)):
  4.     for j in range(len(matriz[0])):
  5.       if matriz[i][j] % 2 != 0:
  6.         sumatorio += matriz[i][j]
  7.   return sumatorio
  8.  
  9.  
  10. def numeros_pares(matriz):
  11.   sumatorio = 0
  12.   for i in range(len(matriz)):
  13.     for j in range(len(matriz[0])):
  14.       if matriz[i][j] % 2 == 0:
  15.         sumatorio += matriz[i][j]
  16.   return sumatorio
  17.  
  18.  
  19.  
  20. fil = int(raw_input("dame el numero de filas:"))
  21.  
  22. while fil <= 5 or fil >= 17:
  23.   fil =int(raw_input("Ingresar nro. de filas Matriz cuadrada (entre >5 y <17):"))
  24.  
  25. lis = [1,1]
  26.  
  27. print lis
  28.  
  29. lis.append(2)
  30. f1 = 1
  31. f2 = 2
  32. for i in range(3,fil+5):
  33.  f = f1 + f2
  34.  f1 = f2
  35.  f2 = f
  36.  lis.append(f)
  37.  
  38.  
  39. print lis
  40.  
  41. nueva = lis[5:]
  42.  
  43. print nueva
  44.  
  45. mat = []
  46. for i in range(fil):
  47.   mat.append([0]*fil)
  48.  
  49. for i in range(fil):
  50.   for j in range(fil):
  51.     if j == i:
  52.       mat[i][j] =nueva[i]
  53.      
  54. print mat



repito por las dudas lo unico que no me sale son los pasos 8 y nueve, espero que alguno se de cuenta de como hacerlo, muchas gracias

Última edición por matiasvalle_2; 18/11/2013 a las 13:05