En función de la decisión del usuario, el programa realizará:
Creará una matriz cuadrada, donde se la pedirá al usuario el tamaño. Los valores serán aleatorios entre 1-20, si existe la matriz, se borrará.
Localizar el valor más alto de la matriz.
La diagonal de la matriz.
Imprimir la matriz.
Salir
Para cada opción debe crear una función.
Análisis:
Si no hay matriz no se puede realizar las opciones de la 2 a la 4.
Preguntar al usuario lo que quiere realizar, sino es una opción válida volver a pedirla.
El tamaño será un valor entero.
Diagrama
Códig
#Importo random
import random
#Crea el menú de opciones
def menu_opciones():
print("Menú")
print("1. Crear matriz")
print("2. Ver la diaginal principal")
print("3. Valor más alto")
print("4. Imprimir matriz")
print("5. Salir")
#Valida el dato introducido por el usuario:sireve para la creación del menú como tamaño
def validar (mensaje,limite_inferior,limite_superior):
# Validamos el tamaño de la matriz
bandera=True
while bandera:
try:
Numero = int(input(mensaje))
except:
print("Tecleaste letras")
else:
if Numero>=limite_inferior and Numero<=limite_superior:
bandera=False
else:
print("Has tecleado 0, un número negativo o te saliste de límite")
return Numero
#Crea la matriz
def crear_matriz():
N=validar("Dame el tamño de la matriz",2,25)
matriz=[]
# Crear la matriz con números aleatorios enteros entre 1 y 31
for i in range(N):
matriz.append([])
for j in range (N):
matriz[i].append(random.randint(1,20))
return matriz
#Localiza la diagonal
def localizar_diagonal(matriz):
diagonal=[]
for i in range(len(matriz)):
diagonal.append(matriz[i][i])
return diagonal
#Localiza el valor mayor de una matriz
def dato_mayor(matriz):
valor_maximo = matriz[0][0] # Asumimos que el valor máximo es el primer elemento de la matriz.
for i in range(len(matriz)): # iteramos sobre las filas de la matriz.
for j in range(len(matriz[i])): # iteramos sobre los elementos de cada fila.
if matriz[i][j] > valor_maximo: # si encontramos un número mayor al asumido como máximo lo guardamos en nuestra variable.
valor_maximo = matriz[i][j]
print("El valor más alto de esta matríz es",valor_maximo)
#Imprimir la matriz
def imprimir_matriz(matriz):
#Imprimimos la matriz
resultado=""
for i in range (len(matriz)):
for j in range (len(matriz[i])):
resultado+=str(matriz[i][j])+"\t"
resultado+="\n"
return resultado
#crear el menú
bandera=True
matriz=[]
#Repite hasta que el usuario teclee un 5, salir
#Establece la llamada a cada función
while bandera:
menu_opciones()
opcion=validar("Dime que opción quieres realizar",1,5)
if opcion==1:
matriz=crear_matriz()
elif opcion==2:
if len(matriz)!=0:
diagonal_matriz=localizar_diagonal(matriz)
print("la diagonal de la matriz es:{}".format(diagonal_matriz))
else:
print("primero debes crear la matriz")
elif opcion==3:
if len(matriz)!=0:
dato_mayor(matriz)
else:
print("primero debes crear la matriz")
elif opcion==4:
if len(matriz)!=0:
matriz_imprimir=imprimir_matriz(matriz)
print("La matriz es:\n {}".format( matriz_imprimir))
else:
print("primero debes crear la matriz")
else:
print("Salir")
bandera=False