Análisis: Ejercicio 3 Complementario (Mátriz).

Matrices

Funciones básicas

Enunciado

Crear un menú en donde el usuario decide lo que quiere realizar:

Diagrama

Datos

Matrices será:

Puntualizaciones

  • Hay que verificar que el usuario no introduzca una fila que no exista y que sea un dato válido.

  • Verificar que la opción sea válida.

Para ello, se utilizará la función def pedir_datos(mensaje, limite):

En función de la opción elegida por el usario, va a verificar la información. en donde:

mensaje, va a ser lo que pida al usuario en pantalla.

limite, los valores que son válidos, por ejemplo no puede introducir una fila que no esté en la matriz, len(matriz[0])

Código de la función


def pedir_datos(mensaje, limite):
    cierto=True
    while cierto:
        try:
              numero=int(input(mensaje))
              if numero >=0 and numero<limite:        
                   cierto=False
   
              else:
                   print("Haste tecleado un número fuera del límite")
        except:
                print("Has introducido una letra")
    
    return numero

Código completo

def pedir_datos(mensaje, limite):
    cierto=True
    while cierto:
        try:
              numero=int(input(mensaje))
              if numero >=0 and numero<limite:        
                   cierto=False
   
              else:
                   print("Haste tecleado un número fuera del límite")
        except:
                print("Has introducido una letra")
    
    return numero

print("inicio de programa")

matriz= [[4,1,2],
    [3,3,2],
    [1,5,1]]
det=1

opcion=1
while opcion!=5:
    print(matriz)
    opcion=pedir_datos("Menú \n1.Multiplicar \n2.Sumar \n3.Intercambiar \n4.Diagonal \n5.Salir ",6)
    
    if opcion==1:
        # multiplicar fila por valor
        fila=pedir_datos(" Dame la Fila: ", len(matriz[0]))
        valor=pedir_datos("Dame el valor a sumar a esa fila:" , 1000)
        
        for j in range(len(matriz[fila])):
            matriz[fila][j]*=valor
    elif opcion==2:
        # suma fila  fila 1 to fila 2 
        fila1=pedir_datos("Dame el valor de la fila 1: ", len(matriz[0]))
        fila2=pedir_datos("Dame el valor de la fila a sumar: ",2000)
        for j in range(len(matriz[fila2])):
            matriz[fila2][j]+=matriz[fila1][j]
    elif opcion==3:
        # intercambiar la fila 1 por la fila 2
        fila1=pedir_datos("Dame el valor de la fila 1 a cambiar: " , len(matriz[0]))
        fila2=pedir_datos("Dame el valor de la fila 2 a cambiar: " , len(matriz[0]))
        det*=-1
        for j in range(len(matriz[fila2])):
            matriz[fila2][j],matriz[fila1][j] = matriz[fila1][j],matriz[fila2][j]
    elif opcion==4:
        #Cálculo del determinante
        for i in range(len(matriz)):
            
            det*=matriz[i][i]
        print("El determinante es {}".format(det))
    elif opcion==5:
        print("Opción salir")
    else:
        print("Valor incorrecto del menú")
print("Fin de programa")

Probarlo

Última actualización

¿Te fue útil?