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

 

 


Tema destacado: Usando Git para manipular el directorio de trabajo, el índice y commits (segunda parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  ayuda con python urgente!!
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: ayuda con python urgente!!  (Leído 3,222 veces)
cartylanz

Desconectado Desconectado

Mensajes: 1


Ver Perfil
ayuda con python urgente!!
« en: 20 Junio 2015, 21:02 pm »

Hola buen dia , soy nuevo en el foro y tambien en python , estoy cursando este lenguaje de programacion llevo 2 meses y el martes es mi examen final , la verdad antes de todo quiero decirles que le dedique tiempo pero no hay forma hay cosas en las que me trabo y no encuentro por ningun lado , me he quedado estos dias hasta muy tarde y opte por buscar ayuda en grandes como ustedes .

esto es un examen espejo tengo como 3 pero no termino aun con este!! Los temas seran en jugar con una matriz como encontrar las diagonales , o sumarlas o multiplicarlas , verificarlas , la transpuesta de una amtriz , etc...

en esta ocacion me trabe en la parte que dice !! que valide la diagonal de una matriz sean ceros(0) , aca les copio el examen espejo y lo que yo estoy avanzando


Código
  1. #!/usr/bin/env python
  2. # -*- coding: utf-8 -*-
  3. #
  4. # ******************************************************************************
  5. # MATERIA : Informática
  6. # EXAMEN : Especificación de Algoritmos 1er Semestre 2014
  7. # NOMBRE :
  8. # MATRICULA :
  9. # CARRERA :
  10. # COMISION : Comisión 2.4
  11. # ******************************************************************************
  12. #
  13. # Estimado alumno: No modifique nada del código que le proveemos y
  14. # use los procedimientos o funciones que estan definidas.
  15. #
  16. #
  17. #
  18. # Realice un programa en Python con las siguientes caracteristicas:
  19. #
  20. #
  21. #  1) Se solicita que la cantidad de filas y columnas de una matriz CUADRADA se ingrese por teclado.
  22. #
  23. #
  24. #  2) Se debe validar que la cantidad de filas y columnas son mayores a cero.
  25. #     De no cumplirse la condición, volver a solicitar dicho valor hasta
  26. #     que éste sea válido.
  27. #
  28. #
  29. #  3) Se deben ingresar los valores de la matriz por el teclado, los valores deben ser numeros enteros
  30. #     pero NO es necesario verificarlo
  31. #
  32. #
  33. #  4) Se debe crear una función que reciba una matriz y verifique que sus elementos sean
  34. #     numeros pares, caso contrario el elemento debe ser remplazado por un 0
  35. #
  36. #     El nombre de la función es obtener_matriz_de_pares y su encabezado
  37. #     ya se encuentra declarado a continuación del enunciado.
  38. #     No se deben modificar ni el nombre ni los parámetros de la función.
  39. #
  40. #
  41. #  5) Se debe mostrar la matriz ingresada por consola, bajo el título " \\ Matriz Ingresada \\ ".
  42. #     La impresión de la matriz debe realizarse utilizando el formato de matriz, tal y
  43. #     como se muestra en el ejemplo de ejecución al final del enunciado.
  44. #    
  45. #     Luego se debe mostrar la matriz de elementos pares bajo el título " \\ Matriz Pares \\ ".
  46. #     La impresión de la matriz debe realizarse utilizando el formato de matriz, tal y
  47. #     como se muestra en el ejemplo de ejecución al final del enunciado.
  48. #
  49. #
  50. #  6) Se debe crear una función que reciba una matriz y verifique que todos los
  51. #     elementos de la diagonal principal sean cero. Si se cumple la condición,
  52. #     la función devolverá True. En caso contrario, devolverá False.
  53. #
  54. #     El nombre de la función es verificar_valores_diagonal y su encabezado
  55. #     ya se encuentra declarado a continuación del enunciado.
  56. #     No se deben modificar ni el nombre ni los parámetros de la función.
  57. #
  58. #  7) Se debe crear una función que reciba una matriz y devuelva como valor de
  59. #     retorno la cantidad de elementos diferentes de cero en su diagonal.
  60. #
  61. #     El nombre de la función es contar_no_nulos_diagonal y su encabezado
  62. #     ya se encuentra declarado a continuación del enunciado.
  63. #     No se deben modificar ni el nombre ni los parámetros de la función.
  64. #
  65. #
  66. #  8) Si se cumple que los elementos de la diagonal son todos nulos,
  67. #     mostrar por consola el siguiente mensaje:
  68. #
  69. #     " """ Los elementos de la diagonal son todos cero """ ".
  70. #
  71. #     En caso de no cumplirse la condición, mostrar el mensaje:
  72. #
  73. #     " """ Los elementos de la diagonal no son todos cero, hay x elementos no nulos """ ".
  74. #
  75. #     Donde x debe remplazarse por la cantidad de elementos no nulos en la matriz.
  76. #
  77. #     Los mensajes deben respetarse tal y como lo solicita el enunciado y como se muestran
  78. #     en los ejemplos de ejecución.
  79. #
  80. #
  81. # ******************************************************************************
  82. #
  83. # ****     Ejemplo de Ejecución de caso particular 1     ****
  84. #
  85. # Filas y Columnas: 4
  86. #
  87. # Elemento (0,0): 1
  88. # Elemento (0,1): 0
  89. # Elemento (0,2): 5
  90. # Elemento (0,3): 9
  91. # Elemento (1,0): 0
  92. # Elemento (1,1): 15
  93. # Elemento (1,2): 0
  94. # Elemento (1,3): 7
  95. # Elemento (2,0): 0
  96. # Elemento (2,1): 5
  97. # Elemento (2,2): 0
  98. # Elemento (2,3): 86
  99. # Elemento (3,0): 45
  100. # Elemento (3,1): 37
  101. # Elemento (3,2): 10
  102. # Elemento (3,3): 87
  103. #
  104. # \\ Matriz Ingresada \\
  105. #
  106. #  1   0   5   9
  107. #  0  15   0   7
  108. #  0   5   0  86
  109. # 45  37  10  87
  110. #
  111. # \\ Matriz Pares \\
  112. #
  113. #  0   0   0   0
  114. #  0   0   0   0
  115. #  0   0   0  86
  116. #  0   0  10   0
  117. #
  118. #
  119. # """ Los elementos de la diagonal son todos cero """
  120. #
  121. # ******************************************************************************
  122. #
  123. # ****     Ejemplo de Ejecución de caso particular 2     ****
  124. #
  125. # Filas y Columnas: 2
  126. #
  127. # Elemento (0,0): 2
  128. # Elemento (0,1): 3
  129. # Elemento (1,0): 5
  130. # Elemento (1,1): 9
  131. #
  132. # \\ Matriz Ingresada \\
  133. #
  134. #  2   3
  135. #  9   5
  136. #
  137. # \\ Matriz Pares \\
  138. #
  139. #  2   0
  140. #  0   0
  141. #
  142. #
  143. #
  144. # """ Los elementos de la diagonal no son todos cero, hay 1 elementos no nulos """
  145. #
  146. # -----------------------------------------------------------------------------
  147. #
  148. # *******       Tabla de Corrección        *******
  149. #-------------------------------------------------------------------                                                                
  150. # - Ingreso y Validación de Datos :                  20 puntos.| 10|
  151. #-------------------------------------------------------------------  
  152. # - Programa Principal :                             15 puntos.|  0|
  153. #-------------------------------------------------------------------  
  154. # - Impresión de Resultados y Formato :              20 puntos.|  5|
  155. #-------------------------------------------------------------------  
  156. # - Función obtener_matriz_de_pares :                20 puntos.|  5|
  157. #-------------------------------------------------------------------  
  158. # - Función verificar_valores_diagonal :             10 puntos.| 10|
  159. #-------------------------------------------------------------------  
  160. # - Función contar_no_nulos_diagonal :               10 puntos.|  0|
  161. #-------------------------------------------------------------------  
  162. # - Comentarios y Semántica :                         5 puntos.|  0|
  163. #-------------------------------------------------------------------  
  164. #                                          TOTAL :  100 puntos.| 30|
  165. #-------------------------------------------------------------------  
  166. #
  167. #
  168. # ******************************************************************************
  169.  
  170.  
  171. # Definición de Funciones
  172. ##
  173. ##def obtener_matriz_de_pares(mat):
  174. ##    return
  175. ##
  176. ##def verificar_valores_diagonal(mat) :
  177. ##    return
  178. ##
  179. ##def contar_no_nulos_diagonal(mat) :
  180. ##    return
  181.  
  182.  
  183. # Programa Principal
  184. # ...complete el codigo aqui...
  185.  
  186.  
  187.  
  188.  
  189. Y ESTO ES LO QUE YO AVANZE :
  190.  
  191. def obtener_matriz_de_pares (mat):
  192.  A=mat*1
  193.  print"Matriz de pares"  
  194.  for i in range (len(mat)):
  195.    for j in range (len(mat[0])):
  196.      A[i][j]=mat[i][j]
  197.  
  198.  
  199.  for i in range (len(A)):
  200.    for j in range (len(A[0])):
  201.      if A[i][j] % 2 !=0 :
  202.        A[i][j]= 0
  203.  
  204.      print A[i][j],
  205.    print
  206.  return A
  207.  
  208. def verificar_valores_diagonal(mat) :
  209.  B=mat*1
  210.  print"diagonal principal"  
  211.  for i in range (len(mat)):
  212.    for j in range (len(mat[0])):
  213.      B[i] = mat[i][0+i]
  214.  for i in range (len(B)):
  215.    print B[i],
  216.  print
  217.  
  218.  
  219.  
  220.  
  221.  
  222.  
  223. ##    print B[i],
  224. ##  print
  225.  
  226.  
  227.  
  228.  
  229.  
  230.  
  231.  
  232.  
  233. #menu principal
  234. fil = int(raw_input("ingrese una fila: "))
  235. while fil < 0:
  236.  fil = int(raw_input("ingrese nuevamente la fila: "))
  237. col = int(raw_input("ingrese una columna: "))
  238. while col < 0:
  239.  col = int(raw_input("ingrese nuevamente la columna: "))
  240.  
  241. M=[]
  242.  
  243. if fil == col :
  244.  
  245.    for i in range (fil):
  246.      M.append (col*[0])
  247.  
  248.    for i in range (fil):
  249.      for j in range (col):
  250.        M[i][j]= int(raw_input("componente: (%d,%d)"%(i,j)))
  251.  
  252.    for i in range (len(M)):
  253.      for j in range (len(M[0])):
  254.        print M[i][j],
  255.      print
  256.  
  257.  
  258.  
  259.  
  260.  
  261. else :
  262.  print "la matriz no es cuadrada"
  263.  
  264. F=obtener_matriz_de_pares (M)
  265. verificar_valores_diagonal(F)
  266.  
  267. ##raw_input ()
  268.  

claramente la parte de el def diagonal princiapl aun no lo se , como hacer que me salga true or false y como hacer que cuando haya un 0 me salga ese print y cuando todos sean 0 el otro


« Última modificación: 20 Junio 2015, 21:04 pm por Eleкtro » En línea

123456

Desconectado Desconectado

Mensajes: 79


Ver Perfil
Re: ayuda con python urgente!!
« Respuesta #1 en: 20 Junio 2015, 22:39 pm »

claramente la parte de el def diagonal princiapl aun no lo se

Bueno, mi lenguaje principal es java ahora mismo, en python no he trabajado con matrices, pero la diagonal la deberías de hacer con un for para filas y otro para columnas, una vez hecho esto, deberías de poner un if(i==j) dentro del bloque de los for. Quedaría más o menos así (en java, espero que te pueda ayudar a tomar la idea)

Código:
for(i=0;i<matriz.length();i++){//.length() define el tamaño de la matriz
     for (j=0;j<matriz.length();j++){
          if(i==j){
                // BLOQUE SENTENCIAS PARA LA DIAGONAL
          }
    }
}


Lo de true o false es con el tipo booleano, si se cumple la sentencia que le hayas puesto al imprimir te dira si true o false

Lamento no poder ayudarte en py, pero si llevas tiempo en programación lo entenderás sin problemas


« Última modificación: 20 Junio 2015, 22:47 pm por 123456 » En línea

explorer

Desconectado Desconectado

Mensajes: 102


Analista/Programador Perl


Ver Perfil
Re: ayuda con python urgente!!
« Respuesta #2 en: 20 Junio 2015, 23:05 pm »

No necesitas un doble bucle. Con uno te vale, ya que el índice que recorre las filas es el mismo que las columnas (con eso, accedemos a la diagonal).

Código
  1. if mat[i][i] == 0:

« Última modificación: 22 Junio 2015, 04:31 am por explorer » En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
PROGRAMA EN PYTHON AYUDA URGENTE
Scripting
viki_297 1 3,187 Último mensaje 15 Junio 2012, 03:22 am
por criskapunk
[AYUDA][PYTHON] Necesito ayuda con el metodo SEARCH del modulo RE de python
Scripting
Noxware 2 4,151 Último mensaje 24 Mayo 2014, 16:11 pm
por Noxware
[AYUDA] Crear tablas con informacion PYTHON URGENTE!
Scripting
gramsch 1 2,041 Último mensaje 10 Agosto 2015, 23:21 pm
por tincopasan
AYUDA URGENTE PYTHON 3 porfa
Programación General
papess 1 2,544 Último mensaje 13 Agosto 2019, 21:05 pm
por tincopasan
Ayuda urgente con problema en python
Scripting
Josueosor 7 3,565 Último mensaje 29 Enero 2021, 01:33 am
por tincopasan
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines