Python - Ayuda con este programa de python!

   
Vista:

Ayuda con este programa de python!

Publicado por emi (1 intervención) el 12/02/2016 22:32:48
Solo quiero saber si lo que hice esta bien y, de tener algun error corregirme




Realice un programa en Python con las siguientes caracteristicas:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
#
#
#  1) Se solicita que la cantidad de filas y columnas de una matriz se ingresen por teclado.
#
#
#  2) Se debe validar que la cantidad de filas y columnas sean mayores a cero y menores a 17.
#     De no cumplirse la condición terminar el programa.
#
#  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 devuelva su transpuesta como valor de retorno.
#
#     El nombre de la función es transpuesta 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 crear una funcion para imprimir matrices por consola, la función acepta
#     dos parametros, matriz y texto.
#     el parámetro texto contendrá el mensaje de la primera fila impresa
#     
#     El nombre de la función es impr_matriz 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. 
#
#  6) 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 transpuesta bajo el título " "" Matriz Transpuesta "" ".
#     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.
#
#
#  7) Se debe crear una función que reciba una matriz y un numero entero "col"
#     y devuelva True si todos los elementos en la columna "col" son mayores a 1
#     y devuelva False en caso contrario.
#
#
#     El nombre de la función es verificar_columna 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) Se debe solicitar el indice de la columna que se desea verificar, si todos sus elementos 
#     son mayores a 1 mostrar el siguiente mensaje:
#        " ""Los elementos de la columna c son todos mayores a 1"" " 
#        donde c debe remplazarse por el indice solicitado 
#     caso contrario mostrar:
#        " ""Los elementos de la columna c NO son todos mayores a 1"" " 
#        donde c debe remplazarse por el indice solicitado 
#
#     La matriz que se debe verificar es la transpuesta
#
#  9) Se debe crear una función que reciba una matriz y devuelva como valor de 
#     retorno una lista donde cada elemento es el promedio de cada fila 
#     de la matriz
#
#     El nombre de la función es promedios 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. 
#
#
#  10) Se debe mostrar por pantalla bajo el titulo " "" Promedios "" " los promedios
#     de cada fila respetando el formato que se muestra en el ejemplo
#
#
# ******************************************************************************
#
# ****     Ejemplo de Ejecución de caso particular     ****
#
#Filas: 2
#Columnas: 3
#Elemento[0,0]: 1
#Elemento[0,1]: 2
#Elemento[0,2]: 3
#Elemento[1,0]: 4
#Elemento[1,1]: 5
#Elemento[1,2]: 6
#
#"" Matriz Ingresada ""
#|    1|    2|    3|
#|    4|    5|    6|
#
#"" Matriz Transpuesta ""
#|    1|    4|
#|    2|    5|
#|    3|    6|
#
#Columna a verificar: 0
#""Los elementos de la columna 0 NO son todos mayores a 1"" 
#
#"" Promedios "" 
#Promedio de la fila 0: 2.500 
#Promedio de la fila 1: 3.500 
#Promedio de la fila 2: 4.500 
#
# ******************************************************************************
#
# *******       Tabla de Corrección        *******
#-------------------------------------------------------------------                                                                
# - Ingreso y Validación de Datos :                  15 puntos.|  0| 
#-------------------------------------------------------------------  
# - Programa Principal :                             10 puntos.|  0|
#-------------------------------------------------------------------  
# - Impresión de Resultados y Formato :              15 puntos.|  0|
#-------------------------------------------------------------------  
# - Función transpuesta:                             20 puntos.|  0|
#-------------------------------------------------------------------  
# - Función impr_matriz :                            10 puntos.|  0|
#-------------------------------------------------------------------  
# - Función promedios :                              10 puntos.|  0|
#-------------------------------------------------------------------
# - Función verificar_columna                        15 puntos |  0|
#-------------------------------------------------------------------  
# - Comentarios y Semántica :                         5 puntos.|  0|
#-------------------------------------------------------------------  
#                                          TOTAL :  100 puntos.|   |
#-------------------------------------------------------------------  
#
#
# ******************************************************************************
 
 
# Definición de Funciones
 
def transpuesta(mat):
  transpuesta=[]
  for i in range(len(mat)):
    transpuesta.append([0]*len(mat))
    for j in range(len(mat)):
      transpuesta[i][j]=mat[i][j]
  return transpuesta
 
def impr_matriz(mat,texto) :
  print'matriz ingresada', texto
  for i in range(len(mat)):
    for j in range(len(mat[0])):
      print'%5d|'%mat[i][j],
    print
 
def promedios(mat):
  lista=[]
  for i in range(len(mat)):
    a=0
    for j in range(len(mat[0])):
      a=float(a+mat[i][j]
  lista.append(float(a/(len(mat[0]))))
  print 'Promedio de la fila %d: %4,3f'%(i,float(a/(len(mat[0])))
 
def verificar_columna(mat,col):
  a=true
  for i in range(len(mat)):
    for j in range(len(mat[0])):
      if j==col:
        if mat[i][j]<=1:
          a=false
  if a==false:
    print 'los elementos no son todos mayores a 1'
  else:
    print 'los elementos son todos mayores a 1'
 
# Programa Principal
filas=int(raw_input('ingrese el numero de filas: '))
columnas=int(raw_input('ingrese el numero de columnas: '))
if filas <= 0 or filas >= 17 or columnas <= 0 or columnas >= 17:
  print '"Datos Erroneos"'
else:
  mat=[]
  for i in range(filas):
    mat.append([0]*columnas)
    for j in range(columnas):
      mat[i][j]=int(raw_input('Elemento [%d,%d]'%(i,j)))


En este otro he intentado mas o menos armar las funciones y no me han salido, si me pudieran dar una idea de lo que hay que hacer en cada función , se los agradecería

1) Se solicita que la cantidad de filas y columnas de una matriz CUADRADA se ingrese por teclado.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
#
#
#  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...
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder