You are on page 1of 4

ELEMENTOS DE COMPUTACIÓN

LABORATORIO: MATRICES

INSTRUCCIONES:
 Desarrollar estas funciones en Python 3.x en un solo archivo fuente.
 Pruebe las funciones desde el modo comando.
 Sugerencias: haga un esquema general de la solución y luego proceda a
realizar el detalle de cada parte.
 Recuerde usar buenas prácticas de programación como documentación
interna, nombres significativos, eficiencia, reutilización de código
(funciones), etc.
 Enviar el programa fuente por medio del tecDigital, sección Evaluaciones,
Laboratorios. Revise la solución enviada: en la misma parte de
Evaluaciones en la sección de la derecha hay una opción que le permite
ver la respuesta enviada.
 Este laboratorio se califica de acuerdo al trabajo enviado: los ejercicios
del 1 al 5 valen 15 puntos cada uno, el ejercicio 6 vale 25 puntos.
 Fecha máxima de entrega: 13 de mayo 2015 (24 horas).

Ejercicio 1

Ejercicio visto en clase. En este ejercicio se desarrollan 2 funciones:


leer_matriz e imprimir_matriz, y un programa principal que va a ser una
función con el nombre de principal_matriz..

Haga una función que lea una matriz m x n: cada elemento de la matriz se va a
leer por separado.
- Entradas: m, n (m filas, n columnas)
- Salidas: retorna la matriz leída

Haga una función que reciba una matriz con valores enteros y la imprima.
- Entradas: una matriz
- Salidas: los elementos de cada fila de la matriz deben ser impresos en una
sola línea en forma separada.
Por ejemplo la matriz [[20, 1, 10], [450, 45, 12345]] se imprime así:

20 1 10
450 45 12345

Note que las columnas numéricas se imprimen alineadas a la derecha. Una


forma de dar formato a los valores impresos es con el uso del operador % tal
como se muestra en la siguiente instrucción:

print("%5d" % (e), end=" ")

imprime el valor de la variable e con un formato que deja 5 posiciones fijas para
imprimir dicho valor como un entero (5d).
Para imprimir flotantes se usa por ejemplo el formato “%10.2f”, el 10 es la
cantidad de espacios usados para imprimir el valor incluyendo el punto decimal
(.) y los 2 decimales. Si el valor a imprimir tiene mas decimales se redondea.
Para imprimir strings se usa por ejemplo el formato “%-30s”, el 30 es la
cantidad de espacios usados para imprimir el valor. El signo de menos (-) se
usa para alinear los strings a la izquierda de la columna.

La opción de end en el print indica que imprima el valor y no salte de línea, de


esta forma los valores de una misma fila se van imprimiendo en la misma línea.

El programa principal se va a estructurar como una función llamada


principal_matriz (no va a tener parámetros) y haremos lo siguiente:
- leer m y n (tamaño de la matriz)
- llamar a la función de lectura
- llamar a la función de impresión con la matriz retornada por la función
anterior.

Ejercicio 2

Desarrolle la función diagonal que reciba una matriz cuadrada (cantidad de


filas y columnas son iguales) y retorne el valor booleano True si es diagonal, de
lo contrario retorne False. Si la matriz no es cuadrada retorne el string “Error:
matriz no es cuadrada”. Una matriz es diagonal si todos sus elementos que no
pertenecen a la diagonal principal son ceros como en el siguiente ejemplo:

5 0 0 0
0 12 0 0
0 0 7 0
0 0 0 3

Observe que los elementos de la diagonal se encuentran donde el índice de fila


es igual al índice de columna, en este caso: [0][0], [1][1], [2][2], [3][3]

Ejercicio 3

Haga la función virus que reciba una matriz y un número de índice de columna.
Debe retornar la matriz pero con los elementos en la columna especificada
conteniendo el valor “error”. Si el índice de la columna no existe en la matriz
tome la última columna para hacer el proceso de destrozar la matriz.

Ejemplos del funcionamiento:

>>> virus([[10, 11, 30 ], [25, 10, 15]], 1)


[[10, “error”, 30], [25, “error”, 15]]

>>> virus([[10, 11, 30 ], [25, 10, 15]], 9)


[[10, 11, “error”], [25, 10, “error”]]
Ejercicio 4

Desarrolle la función matriz_nula que reciba una matriz y retorne el valor


booleano True si es nula (o cero), de lo contrario retorne False. Una matriz es
nula si todos los elementos son ceros.

0 0 0 0
0 0 0 0
0 0 0 0

Ejemplos del funcionamiento:

>>> matriz_nula([[0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0]])


True

>>> matriz_nula([[0, 0, 0], [0, 0, 0], [0, 1, 0]])


False

Ejercicio 5

Haga la función multiplica_listas que reciba dos listas y retorne su


multiplicación. Los elementos de las listas son números. Restricción que se
debe validar: los tamaños de las listas deben ser iguales.
Para hacer este proceso multiplicamos los elementos que están en las mismas
posiciones dentro de las listas y luego se suman para obtener el resultado final.
Esto lo podemos representar mediante la fórmula:

v = [ v0, v1, v2, ... , vn-1 ]

w = [ w0, w1, w2, ... , wn-1 ]

v * w = v0 * w0 + v1 * w1 + v2 * w2 + ... + vn-1 * wn-1 ]

Ejemplos del funcionamiento:


>>> multiplica_listas([0, 0, 0], [1, 2, 3])
0
>>> multiplica_listas([1, 1, 1], [4, 6, 8])
18
>>> multiplica_listas([2, 3, 1, 1], [10, 20, 30, 40])
150
>>> multiplica_listas([1, 1, 1, 1], [4, 6, 8])
'Error: listas deben ser de igual tamaño'
Ejercicio 6

Haga la función multiplica_matrices que reciba dos matrices y retorne otra


matriz con su multiplicación. Investigue cómo es el proceso de multiplicar
matrices. Valide la restricción de tamaños que deben tener las matrices a
multiplicar.
Analice cómo se puede reutilizar en esta función el ejercicio 5.

You might also like