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
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
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 (python) [Seleccionar]
#!/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],
print
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
## print B[i],
## print
#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],
print
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