Ejemplo: Introducir datos en una matrices (Listas y numpy)

Enunciado

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))

Última actualización

¿Te fue útil?