Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - cartylanz

#1
Scripting / ayuda con python urgente!!
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 (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