Se crearán dos matrices de las mismas dimensiones. El número de filas, columnas y sus valores se le preguntarán al usuario, estos datos deben ser enteros y positivos., que previamente se le pedirá al usuario la cantidad de filas y columnas que tendrá.
Calcular y visualizar la matriz Suma.
Calcular y visualizar la matriz Multiplicación.
Visualizar el valor más alto de cada una de las matrices utilizadas.
Análisis:
Pedir el número de columnas y filas, verificar que sea un dato válido, entero y mayor que 0.
Pedir los datos de la matrices, estos, deben ser enteros y mayor que cero.
Calcular la matriz suma y multiplicación.
Localizar el máximo de cada una de las matrices utilziadas.
Imprimir los resultados
Diagrama
Solución utilizando listas y numpy
Código con listas
# Rellenar matriz
def pedir_datos (dato):
valor=-1
while valor<0:
try:
valor=int(input(dato))
if valor<0:
print("Os datos deben de ser positivos.")
except:
print("Tecleaste un caracter no válido.")
return valor
def imprimir_matriz(mensaje1,matriz):
mensaje=mensaje1 + "\n"+"\t"
for i in range(len(matriz)):
for j in range(len(matriz[i])):
mensaje+=str(matriz[i][j])+ "\t"
mensaje+="\n"+"\t"
print(mensaje)
def localizar_mayor(mensaje, matriz):
mayor=matriz[0][0]
for i in range(len(matriz)):
for j in range(len(matriz[i])):
if matriz[i][j] > mayor:
mayor=matriz[i][j]
mensaje="El valor más alto de "+ mensaje +str(mayor)
return mensaje
#Inicializar las matrices
matriz1,matriz2,suma,multi=[],[],[],[]
matriz2=[]
#Pedir el número de filas y columnas al usuario
filas=pedir_datos("Dame la cantidad de filas: ")
columnas=pedir_datos("Dame la cantidad de columnas: ")
#Pedirle los valores al usuario de la primera matriz
print("Pedir datos de la matriz 1")
for i in range(filas):
matriz1.append([])
for j in range(columnas):
matriz1[i].append(pedir_datos("Dame el dato de la matriz 1: fila {} y columna {}: ".format(i+1,j+1)))
##Pedirle los valores al usuario de la primera matriz
print("Pedir datos de la matriz 2")
for i in range(filas):
matriz2.append([0]*columnas)
for j in range(columnas):
matriz2[i][j]=pedir_datos("Dame el dato de la matriz 2: fila {} y columna {}: ".format(i+1,j+1))
#Pedirle los valores al usuario de la primera matriz
#Suma de dos matrices
for i in range(filas):
suma.append([0]*columnas)
for j in range(columnas):
suma[i][j]=matriz1[i][j]+matriz2[i][j]
for i in range(filas):
multi.append([0]*columnas)
for j in range(columnas):
multi[i][j]=matriz1[i][j]*matriz2[i][j]
#Imprimir los resultados
print("Resultados")
imprimir_matriz("Matriz 1:",matriz1)
imprimir_matriz("Matriz 2:",matriz2)
imprimir_matriz("Suma:",suma)
imprimir_matriz("Multiplicación:",multi)
#Localiza el valor más alto de cada una de las matrices
print(localizar_mayor("matriz 1 es:", matriz1))
print(localizar_mayor("matriz 2 es:", matriz2))
print(localizar_mayor("Suma es:", suma))
print(localizar_mayor("Multiplicación es:", multi))
Código utilizando numpy
Importando from numpy import *
from numpy import *
def pedir_datos (dato):
valor=-1
while valor<0:
try:
valor=int(input(dato))
if valor<0:
print("Os datos deben de ser positivos.")
except:
print("Tecleaste un caracter no válido.")
return valor
def imprimir_matriz(mensaje1,matriz):
mensaje=mensaje1 + "\n"+"\t"
for i in range(len(matriz)):
for j in range(len(matriz[i])):
mensaje+=str(matriz[i][j])+ "\t"
mensaje+="\n"+"\t"
print(mensaje)
def localizar_mayor(mensaje, matriz):
mayor=matriz.max()
mensaje="El valor más alto de "+ mensaje +str(mayor)
return mensaje
#Inicializar las matrices
filas=pedir_datos("Dame la cantidad de filas: ")
columnas=pedir_datos("Dame la cantidad de columnas: ")
#Inicializar la matriz vacia
matriz1=empty([filas,columnas])
matriz2=empty([filas,columnas])
suma=empty([filas,columnas])
multi=empty([filas,columnas])
for i in range(filas):
for j in range(columnas):
matriz1[i,j]=pedir_datos("Dame el dato de la matriz 1: fila {} y columna {}: ".format(i+1,j+1))
for i in range(filas):
for j in range(columnas):
matriz2[i][j]=pedir_datos("Dame el dato de la matriz 2: fila {} y columna {}: ".format(i+1,j+1))
#Calcula la suma de matricex
suma=matriz1+matriz2
multi=dot(matriz1,matriz2)
#Imprimir los resultados
imprimir_matriz("Matriz 1:",matriz1)
imprimir_matriz("Matriz 2:",matriz2)
imprimir_matriz("Suma:",suma)
imprimir_matriz("Multiplicación:",multi)
#Localiza el valor más alto de cada una de las matrices
print(localizar_mayor("Matriz 1, ", matriz1))
print(localizar_mayor("Matriz 2, ", matriz2))
print(localizar_mayor("Suma, ", suma))
Importando import numpy as np
import numpy as np
def pedir_datos (dato):
valor=-1
while valor<0:
try:
valor=int(input(dato))
if valor<0:
print("Os datos deben de ser positivos.")
except:
print("Tecleaste un caracter no válido.")
return valor
def imprimir_matriz(mensaje1,matriz):
mensaje=mensaje1 + "\n"+"\t"
for i in range(len(matriz)):
for j in range(len(matriz[i])):
mensaje+=str(matriz[i][j])+ "\t"
mensaje+="\n"+"\t"
print(mensaje)
def localizar_mayor(mensaje, matriz):
mayor=np.max(matriz)
mensaje="El valor más alto de "+ mensaje +str(mayor)
return mensaje
#Inicializar las matrices
filas=pedir_datos("Dame la cantidad de filas: ")
columnas=pedir_datos("Dame la cantidad de columnas: ")
#Inicializar la matriz vacia
matriz1=np.empty([filas,columnas])
matriz2=np.empty([filas,columnas])
suma=np.empty([filas,columnas])
multi=np.empty([filas,columnas])
for i in range(filas):
for j in range(columnas):
matriz1[i,j]=pedir_datos("Dame el dato de la matriz 1: fila {} y columna {}: ".format(i+1,j+1))
for i in range(filas):
for j in range(columnas):
matriz2[i][j]=pedir_datos("Dame el dato de la matriz 2: fila {} y columna {}: ".format(i+1,j+1))
#Calcula la suma de matricex
suma=matriz1+matriz2
multi=np.dot(matriz1,matriz2)
#Imprimir los resultados
imprimir_matriz("Matriz 1:",matriz1)
imprimir_matriz("Matriz 2:",matriz2)
imprimir_matriz("Suma:",suma)
imprimir_matriz("Multiplicación:",multi)
#Localiza el valor más alto de cada una de las matrices
print(localizar_mayor("Matriz 1, ", matriz1))
print(localizar_mayor("Matriz 2, ", matriz2))
print(localizar_mayor("Suma, ", suma))
Si pudieras elegir, ¿Cuál es la solución más óptima?