0% encontró este documento útil (0 votos)
3 vistas7 páginas

Menu-Matrices-codigo

El documento presenta un programa en Python para gestionar matrices, permitiendo al usuario ingresar dimensiones y valores, así como realizar diversas operaciones como impresión, verificación de propiedades y multiplicación de matrices. Incluye funciones para validar entradas, determinar el tipo de matriz, calcular la traza y verificar si es simétrica, entre otras. Además, el programa cuenta con un menú interactivo que facilita la selección de operaciones a realizar sobre las matrices.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
3 vistas7 páginas

Menu-Matrices-codigo

El documento presenta un programa en Python para gestionar matrices, permitiendo al usuario ingresar dimensiones y valores, así como realizar diversas operaciones como impresión, verificación de propiedades y multiplicación de matrices. Incluye funciones para validar entradas, determinar el tipo de matriz, calcular la traza y verificar si es simétrica, entre otras. Además, el programa cuenta con un menú interactivo que facilita la selección de operaciones a realizar sobre las matrices.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 7

#Validaciones

def validaciones(variable):
while True:
sol="Introduce "
sol+=variable+": "
num = input(sol)

try:
num = int(num)
return num
except ValueError:
print("El valor es incorrecto: escribe un numero")

print("Programa Menu Matrices.......\nIngresa las dimensiones de la


matriz:\n")
filas = validaciones("la cantidad de filas")
columnas = validaciones("la cantidad de Columnas")
print("\n-----Dimensiones realizadas Correctamente-----\n")
print("-----Llenando la Matriz-----")
matriz=[]
if (filas!=0 and columnas!=0):
for i in range (filas):
matriz.append([])
for j in range(columnas):
valor = validaciones("Fila {}, Columna {}:" .format(i+1,j+1))
matriz[i].append(valor)
print("--------Matriz Llenada Correctamente----------")

def imprimir(matriz,filas,columnas):
cadena=''
for i in matriz:
cadena+='['
for j in i:
cadena+='{:6}'.format(j)
cadena+=']\n'
return cadena

def menu():
print("---------------------Menu de Matrices-------------------------
")
print("1,.Impresion")
print("2.-Verificacion si es nula")
print("3.-Matriz (Fila o Columna o Cuadrada Rectangular)")
print("4.-Diagonal Principal")
print("5.-Traza Matriz")
print("6.-Diagonal Secundaria (En forma de matriz)")
print("7.-Verificacion de Matriz Superior")
print("8.-Verificacion de Matriz Inferior")
print("9.-Verificacion de Matriz Diagonal")
print("10.-Verificacion de Matriz Identidad")
print("11.-Impresion de Matriz Opuesta")
print("12.-Impresion de Matriz Por Numero Real")
print("13.-Impresion de Matriz Transpuesta")
print("14.-Verificacion de Matriz Simetrica")
print("15.-Producto de dos matrices")
print("16.-Salir")
print("--------------------------------------------------------------
")

def switch(case,matriz,filas,columnas):
sw={
1: imprimir(matriz,filas,columnas),
2: Nula(matriz,filas,columnas),
3: tipoMatriz(filas,columnas),
4: diagonalPrincipal(matriz,filas,columnas),
5: traza(matriz,filas,columnas),
6: diagonalSecundaria(matriz,filas,columnas),
7: matrizSup(matriz,filas,columnas),
8: matrizInf(matriz,filas,columnas),
9: matrizDiag(matriz,filas,columnas),
10: matrizIden(matriz,filas,columnas),
11: matrizOp(matriz,filas,columnas),
12: matrizReal(matriz,filas,columnas,real),
13: matrizTrans(matriz,filas,columnas),
14: matrizSim(matriz,filas,columnas),
15:
Multiplicacion(matriz,matriz2,filas,columnas,filas2,columnas2),
16: salir(),
}
return sw.get(case, default())

def default():
return "Opcion Invalida"

def Nula(matriz,filas,columnas):
nula=""
for i in range(filas):
for j in range(columnas):
if (matriz[i][j]!=0):
nula+="La matriz no es nula"
return nula
break
if (nula==""):
nula+="La matriz es nula"
return nula

def tipoMatriz(filas,columnas):
cadena=""
if (filas==columnas):
cadena+="La matriz es cuadrada"
return cadena
if(filas==1 and columnas>0):
cadena+="La matriz es una fila"
return cadena
if(filas>0 and columnas==1):
cadena+="La matriz es una columna"
return cadena
if (filas>0 and columnas>0 and filas!=columnas):
cadena+="La matriz es rectangular"
return cadena

def diagonalPrincipal(matriz,filas,columnas):
if columnas == filas:
mat=""
for i in range(filas):
mat+="[ "
for j in range(columnas):
valor=0
if (i==j):
valor=matriz[i][j]
mat+=str(valor)+" "
mat+=" ]\n"

return mat
else:
return "La matriz no es cuadrada"

def traza(matriz,filas,columnas):
if columnas == filas:
traz=0
for f in range(filas):
for c in range(columnas):
if(f==c):
traz+=matriz[f][c]
return str(traz)
else:
return "La matriz debe ser cuadrada"

def diagonalSecundaria(matriz,filas,columnas):
if columnas == filas:
mat=""
n=columnas-1
for i in range(filas):
mat+="[ "
for j in range(columnas):
valor=0
if (j==n):
n-=1
valor=matriz[i][j]
mat+=str(valor)+" "
mat+=" ]\n"

return mat
else:
return "La matriz no es cuadrada"

def matrizSup(matriz,filas,columnas):
if columnas == filas:
n=0
for f in range(filas):
for c in range(columnas):
if(c<f):
n+=matriz[f][c]
if n==0:
return "Es una matriz superior"
else:
return 'NO es una matriz superior'
else:
return "La matriz debe ser cuadrada"

def matrizInf(matriz,filas,columnas):
if columnas == filas:
n=0
for f in range(filas):
for c in range(columnas):
if(c>f):
n+=matriz[f][c]
if n==0:
return "Es una matriz inferior"
else:
return 'NO es una matriz inferior'
else:
return "La matriz debe ser cuadrada"

def matrizDiag(matriz,filas,columnas):
if columnas == filas:
n=0
for f in range(filas):
for c in range(columnas):
if(c>f):
n+=matriz[f][c]
if(c<f):
n+=matriz[f][c]
if n==0:
return "Es una matriz Diagonal"
else:
return 'No es una matriz Diagonal'
else:
return "La matriz debe ser cuadrada"

def matrizIden(matriz,filas,columnas):
if columnas == filas:
n=0
for f in range(filas):
for c in range(columnas):
if(c>f):
n+=matriz[f][c]
if(c<f):
n+=matriz[f][c]
if(c==f):
if (matriz[f][c]==1):
n+=0
else:
n+=1;
if n==0:
return "Es una matriz Identidad"
else:
return 'No es una matriz Identidad'
else:
return "La matriz debe ser cuadrada"

def matrizOp(matriz,filas,columnas):
mat=[]
for i in range (filas):
mat.append([])
for j in range(columnas):
valor = matriz[i][j]
valor*=-1
mat[i].append(valor)
return imprimir(mat,filas,columnas)

def matrizReal(matriz,filas,columnas,real):
mat=[]
for i in range (filas):
mat.append([])
for j in range(columnas):
valor = matriz[i][j]
valor*=real
mat[i].append(valor)
return imprimir(mat,filas,columnas)

def matrizTrans(matriz,filas,columnas):
t=[]
for f in range(len(matriz[0])):
t.append([])
for c in range(len(matriz)):
t[f].append(matriz[c][f])
return imprimir(t,columnas,filas)

def matrizSim(matriz,filas,columnas):
if filas==columnas:
simetrica=True
for i in range(filas):
for j in range(columnas):
if(matriz[i][j]!=matriz[j][i]):
simetrica=False
if simetrica==True:
return 'La matriz es simetrica'
else:
return 'La matriz no es simetrica'
else:
return "Debe ser una matriz cuadrada"
def Multiplicacion(matriz,matriz2,filas,columnas,filas2,columnas2):
if columnas==filas2:
mat = [[0 for i in range(columnas2)] for j in range(filas)]
for f in range(filas):
for c in range(columnas2):
r = 0
for x in range(columnas):
r += matriz[f][x] * matriz2[x][c]
mat[f][c] = r
return imprimir(mat,filas2,columnas2)
else:
return "No es igual el numero de filas de A y columnas de B"

def acomodar(matriz,columnas,filas):
cadena = ''
for i in range(filas):
cadena += '['
for j in range(columnas):
cadena += '{:5s}'.format(str(matriz[i][j]))
cadena += ']\n'
return cadena

def salir():
return "Saliendo............."
real=1
filas2=1
columnas2=1
matriz2=[]
while(True):
menu()
case=validaciones(" una opcion del menu: ")
print(switch(case,matriz,filas,columnas))
if(case==16):
break
if(case==12):
print("")
real=validaciones("el numero real por el que se multiplicara la
matriz: ")
print(switch(case,matriz,filas,columnas))
if(case==15):
print("Llenado Matriz DOS")
columnas2=validaciones("la cantidad de columnas")
print("")
filas2=validaciones("la cantidad de filas")
print("")
for f in range(filas2):
matriz2.append([])
for c in range(columnas2):
valor = validaciones("el valor de Fila {}, Columna {}:
".format(f+1, c+1))
matriz2[f].append(valor)
print("-----------------------------------------------------------
------------")
print(switch(case,matriz,filas,columnas))

También podría gustarte