Documentos de Académico
Documentos de Profesional
Documentos de Cultura
programación
01 Objetivos de aprendizaje
03 Errores
04 try/except
01
Objetivos de aprendizaje
• Objetivo general:
Introducir los conceptos básicos de operaciones con matrices
en sus diferentes formas de hacerlo, así como introducir el
manejo de errores en un programa.
• Objetivos específicos
• Conocer la forma de realizar operaciones básicas con
matrices.
• Conocer librerías y herramientas que permiten realizar
operaciones sobre conjuntos de datos.
• Entender el concepto de control sobre un programa a
través del control de errores.
// F u n d a m e n t o s d e P r o g r a m a c i ó n
Fundamentos de
programación
Carpintería
Operaciones básicas con matrices
02
Matrices - Repaso
Columnas
02
Matrices - Repaso
Columnas
M = [ [’A’, ’B’, ’C’, ’D’, ’E’],
[’F’, ’G’, ’H’, ’I ’, ’J’],
[’K’, ’L’, ’M’, ’N’,’Ñ’],
[’O’, ’P’, ’Q’, ’R’, ’S’],
[’T’, ’U’, ’V’, ’W’, ’X’] ]
02
Matrices - Suma
Restricciones:
• A, B deben tener el mismo tamaño.
2 4 6 1 2 1
1 2 3 3 4 5
A= B=
5 7 2 6 3 2
1 0 2 1 1 1
2 4 6 1 2 1 3 6 7
1 2 3 3 4 5 4 6 8
+ =
5 7 2 6 3 2 11 10 4
1 0 2 1 1 1 2 1 3
A B C
02
Matrices - Suma
Restricciones:
• A, B deben tener el mismo tamaño.
A = [[2, 4, 6], [1, 2, 3], [5, 7, 2], [1, 0, 2]] A[1] = [1, 2, 3]
B = [[1, 2, 1], [3, 4, 5], [6, 3, 2], [1, 1, 1]] A[1][2] = 3
C = [[0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0]]
2 4 6
1 2 3
A= B= 3
5 7 2
1 0 2
2 4 6 6 12 18
1 2 3 3 6 9
*3 =
5 7 2 15 21 6
1 0 2 3 0 6
A B C
02
Matrices – Multiplicación por escalar
4 6
7 2 6 3 2
A= B=
0 2 1 1 1
C
02
Matrices – Multiplicación
B 6 3 2
1 1 1
4 6 30 18 14
7 2 44 23 16
0 2 2 2 2
A C
02
Matrices – Multiplicación
Restricciones:
• A debe tener un numero de columnas igual al numero de filas de B
• Amp * Bpn = Cmn
para i = 0; <m; +1
A = [[4, 6], [7, 2], [0, 2]]
m=3
para j = 0; < n; +1
B = [[6, 3, 2], [1, 1, 1]] C[i][j] = 0
n=3 para k = 0; < p; +1
C = [[0, 0, 0], [0, 0, 0], [0, 0, 0]]
p=2
C[i][j] = C[i][j] + A[i][k] * B[k][j]
fin para
fin para
fin para
mostrar C
02
Matrices - Transpuesta
4 6
A= 4 7 0
7 2 At=
6 2 2
0 2
A = [[4, 6], [7, 2], [0, 2]]
At = [[0, 0, 0], [0, 0, 0]]
2 4 6 2 0 0
1 2 3 0 2 0
A= A=
5 7 2 0 0 2
1 0 2
0 0 0
// F u n d a m e n t o s d e P r o g r a m a c i ó n
02
Matrices - Ejemplo
Ejemplo 1. Matriz diagonal
Análisis:
• ¿Cuál es el objetivo buscado?
• Calcular la matriz diagonal de una matriz dada.
• ¿Cuáles son los datos de entrada?
• Una matriz de i filas por j columnas
• ¿Cuáles son los datos de salida?
• La matriz diagonal
• ¿Qué cálculos/procesos deben llevarse a cabo?
• Mij = 0 si i != j
// F u n d a m e n t o s d e P r o g r a m a c i ó n
02
Matrices - Ejemplo
Ejemplo 1. Matriz diagonal
inicio
m = evaluar(leer())
para i=0;<=largo(m);+1
para j=0;<=largo(m[i]);+1
if i != j:
m[i][j] = 0
finpara
finpara
mostrar(m)
fin
// F u n d a m e n t o s d e P r o g r a m a c i ó n
Fundamentos de
programación
¿Qué es NumPy?
Librería externa para Python que permite realizar cálculos sobre
grandes cantidades de datos.
Utilizado en:
• Visión artificial
• Ciencias de los datos
• Álgebra lineal
Análisis:
• ¿Cuál es el objetivo buscado?
• Calcular la matriz diagonal de una matriz dada.
• ¿Cuáles son los datos de entrada?
• Una matriz de i filas por j columnas
• ¿Cuáles son los datos de salida?
• La matriz diagonal
• ¿Qué cálculos/procesos deben llevarse a cabo?
• Mij = 0 si i != j
// F u n d a m e n t o s d e P r o g r a m a c i ó n
02
Matrices - Ejemplo
Ejemplo 1. Matriz diagonal
inicio
import numpy as np
m = np.matrix(evaluar(leer()))
diagonal_en_vector = np.diag(m)
diagonal_en_matriz = np.diag(diagonal_en_vector)
mostrar(diagonal_en_matriz)
fin
// F u n d a m e n t o s d e P r o g r a m a c i ó n
02
Documentos de ayuda
Numpy matrices:
https://docs.scipy.org/doc/numpy/referen
ce/generated/numpy.matrix.html
inicio
a=2
mostrar(a / b) NameError
fin
inicio
a = entero(‘hola’) TypeError
fin
04
Estructura de control – Aproximación intuitiva
Sí No
Ejecute la
Fin bloque de
estructura de
control
finalización
04
Estructura de control - Explicacion
El programa intentará ejecutar todo lo que se encuentre dentro del bloque try.
Si el bloque finally existe, se ejecutará el código dentro del bloque finally ocurra o no
un error.
Estructura de control
Para poder controlar errores se usa una estructura de control
try:
…instrucciones que pueden producir un error…
except tipo_de_error_1:
… instrucciones para el tipo de error 1…
…
except tipo_de_error_n:
… instrucciones para el tipo de error n…
finally:
… instrucciones de finalización
04
Estructura de control
Estructura de control
Para poder controlar errores se usa una estructura de control
numero_1 = int(input())
numero_2 = int(input())
operacion = int(input())
Posibles errores:
If operacion == 1: • División por cero
print(numero_1+numero_2) • Error de tipo
If operacion == 2:
print(numero_1-numero_2)
If operacion == 3:
print(numero_1*numero_2)
If operacion == 4:
print(numero_1/numero_2)
04
Estructura de control - Ejemplo
try:
numero_1 = 2
numero_2 = 0
print(numero_1/numero_2)
print(“Programa sin errores”)
except ZeroDivisionError:
print(“Para dividir el numero 2 no puede ser 0”)
except TypeError:
print(“Debe ingresar un numero”)
except Exception:
print(“Controlo cualquier tipo de error”)
finally:
print(“Fin calculadora”)
04
Estructura de control - Ejemplo
try: Como número_2 es igual a 0 la
numero_1 = 2 instrucción numero_1/numero_2
numero_2 = 0 generará un error de división por 0.
print(numero_1/numero_2)
print(“Programa sin errores”) Todo el bloque try se detendrá
except ZeroDivisionError: inmediatamente y ejecutará el primer
print(“Para dividir el numero 2 no puede ser 0”) bloque except que encuentre capaz de
except TypeError: manejarlo.
print(“Debe ingresar un numero”)
except Exception: El bloque finally se ejecutará, este
print(“Controlo cualquier tipo de error”) bloque es opcional.
finally:
print(“Fin calculadora”) Resultado:
Para dividir el número 2 no puede ser 0
Fin calculadora
04
Estructura de control - Ejemplo
try:
numero_1 = ‘a’
numero_2 = 0
print(numero_1 + numero_2)
print(“Programa sin errores”)
except ZeroDivisionError:
print(“Para dividir el numero 2 no puede ser 0”)
except TypeError:
print(“Debe ingresar un numero”)
except Exception:
print(“Controlo cualquier tipo de error”)
print(“Fuera del bloque de control”)
04
Estructura de control - Ejemplo
try: No puede sumarse un número con
numero_1 = ‘a’ texto, por lo tanto se genera un error
numero_2 = 0 de tipo.
print(numero_1 + numero_2)
print(“Programa sin errores”) El bloque “except TypeError” capturará
except ZeroDivisionError: el error y se ejecutará.
print(“Para dividir el numero 2 no puede ser 0”)
except TypeError:
print(“Debe ingresar un numero”) Resultado:
except Exception: Debe ingresar un número
print(“Controlo cualquier tipo de error”) Fuera del bloque de control
print(“Fuera del bloque de control”)
Preguntas
Aportes
Comentarios
// F u n d a m e n t o s d e P r o g r a m a c i ó n