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
#!/usr/bin/env python # -*- coding: utf-8 -*- # # ****************************************************************************** # MATERIA : Informática # EXAMEN : Especificación de Algoritmos 1er Semestre 2014 # NOMBRE : # MATRICULA : # CARRERA : # COMISION : Comisión 2.4 # ****************************************************************************** # # Estimado alumno: No modifique nada del código que le proveemos y # use los procedimientos o funciones que estan definidas. # # # # Realice un programa en Python con las siguientes caracteristicas: # # # 1) Se solicita que la cantidad de filas y columnas de una matriz CUADRADA se ingrese por teclado. # # # 2) Se debe validar que la cantidad de filas y columnas son mayores a cero. # De no cumplirse la condición, volver a solicitar dicho valor hasta # que éste sea válido. # # # 3) Se deben ingresar los valores de la matriz por el teclado, los valores deben ser numeros enteros # pero NO es necesario verificarlo # # # 4) Se debe crear una función que reciba una matriz y verifique que sus elementos sean # numeros pares, caso contrario el elemento debe ser remplazado por un 0 # # El nombre de la función es obtener_matriz_de_pares y su encabezado # ya se encuentra declarado a continuación del enunciado. # No se deben modificar ni el nombre ni los parámetros de la función. # # # 5) Se debe mostrar la matriz ingresada por consola, bajo el título " \\ Matriz Ingresada \\ ". # La impresión de la matriz debe realizarse utilizando el formato de matriz, tal y # como se muestra en el ejemplo de ejecución al final del enunciado. # # Luego se debe mostrar la matriz de elementos pares bajo el título " \\ Matriz Pares \\ ". # La impresión de la matriz debe realizarse utilizando el formato de matriz, tal y # como se muestra en el ejemplo de ejecución al final del enunciado. # # # 6) Se debe crear una función que reciba una matriz y verifique que todos los # elementos de la diagonal principal sean cero. Si se cumple la condición, # la función devolverá True. En caso contrario, devolverá False. # # El nombre de la función es verificar_valores_diagonal y su encabezado # ya se encuentra declarado a continuación del enunciado. # No se deben modificar ni el nombre ni los parámetros de la función. # # 7) Se debe crear una función que reciba una matriz y devuelva como valor de # retorno la cantidad de elementos diferentes de cero en su diagonal. # # El nombre de la función es contar_no_nulos_diagonal y su encabezado # ya se encuentra declarado a continuación del enunciado. # No se deben modificar ni el nombre ni los parámetros de la función. # # # 8) Si se cumple que los elementos de la diagonal son todos nulos, # mostrar por consola el siguiente mensaje: # # " """ Los elementos de la diagonal son todos cero """ ". # # En caso de no cumplirse la condición, mostrar el mensaje: # # " """ Los elementos de la diagonal no son todos cero, hay x elementos no nulos """ ". # # Donde x debe remplazarse por la cantidad de elementos no nulos en la matriz. # # Los mensajes deben respetarse tal y como lo solicita el enunciado y como se muestran # en los ejemplos de ejecución. # # # ****************************************************************************** # # **** Ejemplo de Ejecución de caso particular 1 **** # # Filas y Columnas: 4 # # Elemento (0,0): 1 # Elemento (0,1): 0 # Elemento (0,2): 5 # Elemento (0,3): 9 # Elemento (1,0): 0 # Elemento (1,1): 15 # Elemento (1,2): 0 # Elemento (1,3): 7 # Elemento (2,0): 0 # Elemento (2,1): 5 # Elemento (2,2): 0 # Elemento (2,3): 86 # Elemento (3,0): 45 # Elemento (3,1): 37 # Elemento (3,2): 10 # Elemento (3,3): 87 # # \\ Matriz Ingresada \\ # # 1 0 5 9 # 0 15 0 7 # 0 5 0 86 # 45 37 10 87 # # \\ Matriz Pares \\ # # 0 0 0 0 # 0 0 0 0 # 0 0 0 86 # 0 0 10 0 # # # """ Los elementos de la diagonal son todos cero """ # # ****************************************************************************** # # **** Ejemplo de Ejecución de caso particular 2 **** # # Filas y Columnas: 2 # # Elemento (0,0): 2 # Elemento (0,1): 3 # Elemento (1,0): 5 # Elemento (1,1): 9 # # \\ Matriz Ingresada \\ # # 2 3 # 9 5 # # \\ Matriz Pares \\ # # 2 0 # 0 0 # # # # """ Los elementos de la diagonal no son todos cero, hay 1 elementos no nulos """ # # ----------------------------------------------------------------------------- # # ******* Tabla de Corrección ******* #------------------------------------------------------------------- # - Ingreso y Validación de Datos : 20 puntos.| 10| #------------------------------------------------------------------- # - Programa Principal : 15 puntos.| 0| #------------------------------------------------------------------- # - Impresión de Resultados y Formato : 20 puntos.| 5| #------------------------------------------------------------------- # - Función obtener_matriz_de_pares : 20 puntos.| 5| #------------------------------------------------------------------- # - Función verificar_valores_diagonal : 10 puntos.| 10| #------------------------------------------------------------------- # - Función contar_no_nulos_diagonal : 10 puntos.| 0| #------------------------------------------------------------------- # - Comentarios y Semántica : 5 puntos.| 0| #------------------------------------------------------------------- # TOTAL : 100 puntos.| 30| #------------------------------------------------------------------- # # # ****************************************************************************** # Definición de Funciones ## ##def obtener_matriz_de_pares(mat): ## return ## ##def verificar_valores_diagonal(mat) : ## return ## ##def contar_no_nulos_diagonal(mat) : ## return # Programa Principal # ...complete el codigo aqui... Y ESTO ES LO QUE YO AVANZE : def obtener_matriz_de_pares (mat): A=mat*1 print"Matriz de pares" for i in range (len(mat)): for j in range (len(mat[0])): A[i][j]=mat[i][j] for i in range (len(A)): for j in range (len(A[0])): if A[i][j] % 2 !=0 : A[i][j]= 0 print A[i][j], return A def verificar_valores_diagonal(mat) : B=mat*1 print"diagonal principal" for i in range (len(mat)): for j in range (len(mat[0])): B[i] = mat[i][0+i] for i in range (len(B)): print B[i], ## print B[i], #menu principal fil = int(raw_input("ingrese una fila: ")) while fil < 0: fil = int(raw_input("ingrese nuevamente la fila: ")) col = int(raw_input("ingrese una columna: ")) while col < 0: col = int(raw_input("ingrese nuevamente la columna: ")) M=[] if fil == col : for i in range (fil): M.append (col*[0]) for i in range (fil): for j in range (col): M[i][j]= int(raw_input("componente: (%d,%d)"%(i,j))) for i in range (len(M)): for j in range (len(M[0])): print M[i][j], else : print "la matriz no es cuadrada" F=obtener_matriz_de_pares (M) verificar_valores_diagonal(F) ##raw_input ()
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