Ejercicios Integradores Resueltos (Listas, Matrices, Diccionarios, Funciones)
8. Mayor de Matriz
'''
Realizar un programa en Python que:
1)Invoque a una funcion menú que SOLO regresa una opcion válida del menu.
2)Que permita invocar a la función carga, que carga una matriz humedad de dimensiones N x M.
N y M definidas como constantes
3)Que permita invocar a la funcion mayor, que regresa el mayor valor de la diagonal principal.
4) Que presente una opción para finalizar el programa.
Los valores permitidos para carga en la matriz humedad son [0;100]
'''
#Funcion que valida ingresos, regresa opcion válida solo 1,2,3
def menu():
while True:
print('1-Cargar')
print('2-Buscar Mayor')
print('3-Salir')
opc=input('Ingrese opcion: ')
if not(opc=='1' or opc=='2' or opc=='3'):
print('opcion no válida.. reingrese')
else:
return opc # regresa 1 o 2 o3
#Funcion que carga matriz.
def carga(humedad):
for x in range(N):#este for recorre CADA fila por lo tanto x va tomar valores 0 y N-1
humedad.append(list())#lista que oficia de fila
for y in range(M):
while True:
ingreso=float(input('ingrese nro'))
if ingreso>=0 and ingreso<=10:
break
else:
print('valor no valido.. reingrese')
humedad[x].append(ingreso)# si es valido guardo.
return(True)
#Funcion que busca y regresa el mayor de la diagonal.
def mayor(humedad):
mayor=humedad[0][0]#propongo un elemento de la matriz como mayor
#El algoritmo que sigue busca si hay algún elemento mayor ...
for x in range(N):#este for recorre CADA fila por lo tanto x va tomar valores 0 y N-1
for y in range(M):
if humedad[x][y]>mayor:
mayor=humedad[x][y]#cuando encuentro uno mas grande que mayor lo tomo como mayor.
return(mayor)
N=2 #Defino dimensiones
M=3 #Defino dimensiones
humedad=[]#declaro una lista de nombre humedad.
cargada=False
while True:
opc=menu()
if opc=='1':
cargada=carga(humedad)# si regresa True es por que se cargó.
print(humedad)
elif opc=='2' :
if cargada:
print(mayor(humedad))
elif opc=='3':
print('saliendo')
break