Programa de Especialización en
Programación en Python
1. Algoritmos y Programas
Dr. Cristian López Del Alamo
clopezd@[Link]
2023
1
Agenda
1. Definición
2. Entradas
3. Salidas
4. Procedimientos
5. Ejercicios
2
1. ¿Qué es un
algoritmo?
3
Algoritmos
Niño cambiando de llanta Robot cambiando de llanta
Dr. Cristian López Del Alamo
Algoritmos
Robot preparando una receta
Niña preparando una receta
Dr. Cristian López Del Alamo
Transistores
Dr. Cristian López Del Alamo
Algoritmo
Dr. Cristian López Del Alamo
Algoritmo
Inputs Algoritmo Outputs
Dr. Cristian López Del Alamo
Algoritmo
Dr. Cristian López Del Alamo
¿Qué es un Algoritmo?
Un algoritmo es una secuencia de pasos
ordenados de manera lógica que permiten
resolver un problema
Dr. Cristian López Del Alamo
2. Eficiencia
11
Algoritmo
Algoritmo
Encuentre si José está en está en esta lista
Juan Mario Elvis Carlos Pepe Ana karla Maria Lucho Jose
Juan Mario Elvis Carlos Pepe Ana karla Maria Lucho Jose
Juan Mario Elvis Carlos Pepe Ana karla Maria Lucho Jose
Juan Mario Elvis Carlos Pepe Ana karla Maria Lucho Jose
Dr. Cristian López Del Alamo
Algoritmo
Encuentre si Pepe está en está en esta lista o no
Ana Carlos Elvis Jose Juan Karla Lucho Maria Mario Pepe
Ana Carlos Elvis Jose Juan Karla Lucho Maria Mario Pepe
Ana Carlos Elvis Jose Juan Karla Lucho Maria Mario Pepe
Dr. Cristian López Del Alamo
1. Algoritmo Buscar un nombre en una lista
Buscar_Nombre
Lista de cadena
de caracteres
Entero
Algoritmo 1 Si se encuentra
0 Si no
cadena de
caracteres
Dr. Cristian López Del Alamo
Eficiencia
Un algoritmo es eficiente si consume pocos
recurso (ram, disco) y resuelve el problema
en menor tiempo, en comparación a otros
algoritmos que resuelven el mismo problema
Dr. Cristian López Del Alamo
3. Pseudocódigo
17
1. Ejemplos
1. Crear un algoritmo que suma dos números
Inputs Algoritmo Outputs
Dr. Cristian López Del Alamo
5 1. Ejemplos
1. Crear un algoritmo que suma dos números
suma
Int a
5
Int
Int b
retornar ?
7
a+b
Dr. Cristian López Del Alamo
5 1. Ejemplos
1. Crear un algoritmo que suma dos números
Int a
5
Int
Int b
Algoritmo ?
Dr. Cristian López Del Alamo
5 2. Ejemplos
2. Hallar el mayor de dos números
mayor
Int a
5 Si a > b
Int
retornar a
Int b Sino ?
retornar b
7
Dr. Cristian López Del Alamo
5 2. Ejemplos
3. Hallar el mayor de dos números distintos
mayor_ABC
Int a
Si (a > b) y (a>c)
5
retornar a Int
Int b
Si (b > a) y (b>c)
7 retornar b ?
Int c Si (c > a) y (c>b)
2
retornar c
Dr. Cristian López Del Alamo
5 2. Ejemplos
3. Hallar el mayor de dos números distintos
mayor_ABC
Int a
5
Int b Int
m1 = mayor(a,b)
7 m2 = mayor(m1,c) ?
Int c retornar m2
Dr. Cristian López Del Alamo
5 2. Ejemplos
3. Se una círculo con centro centro c1= (x1,y1) y radio r1 y una otra circunferencia
c2=(x2,y2) y radio 2. Con esta información cree un algoritmo que retorne 1 si los circulos
se tocan cero si no
Dr. Cristian López Del Alamo
5 2. Ejemplos
3. Se una círculo con centro centro c1= (x1,y1) y radio r1 y una otra circunferencia
c2=(x2,y2) y radio 2. Con esta información cree un algoritmo que retorne 1 si los circulos
se tocan cero si no
(x1,y1)
r1
r2
(x1,y2)
Dr. Cristian López Del Alamo
5 2. Ejemplos
3. Se una círculo con centro centro c1= (x1,y1) y radio r1 y una otra circunferencia
c2=(x2,y2) y radio 2. Con esta información cree un algoritmo que retorne 1 si los circulos
se tocan cero si no
d=?
(x1,y1)
r1
d
r2
(x1,y2)
Dr. Cristian López Del Alamo
5 2. Ejemplos
3. Se un círculo con centro centro c1= (x1,y1) y radio r1 y una otra circunferencia
c2=(x2,y2) y radio 2. Con esta información cree un algoritmo que retorne 1 si los circulos
se tocan cero si no
(x1,y1)
r1
r2
(x1,y2)
Dr. Cristian López Del Alamo
5 2. Ejemplos
3. Se una círculo con centro centro c1= (x1,y1) y radio r1 y una otra circunferencia
c2=(x2,y2) y radio 2. Con esta información cree un algoritmo que retorne 1 si los circulos
se tocan cero si no
(x1,y1)
r1
d
r2
(x1,y2)
Dr. Cristian López Del Alamo
5 2. Ejemplos
3. Se una círculo con centro centro c1= (x1,y1) y radio r1 y una otra circunferencia
c2=(x2,y2) y radio 2. Con esta información cree un algoritmo que retorne 1 si los circulos
se tocan cero si no
(x1,y1)
r1
r2
d r2 (x1,y1)
(x1,y2)
d=0
(x1,y2)
r1
Dr. Cristian López Del Alamo
5 2. Ejemplos
3. 1. Calculamos la distancia entre los centros
distancia
Int x1
d=
Int y1 d = sqrt((x2-x1)^2 + (y2-y1)^2)
return d ?
Int x1
Int
Int y2
Dr. Cristian López Del Alamo
5 2. Ejemplos
3. 1. Calculamos la distancia entre los centros
SeTocan
Int x1
Int y1 d=
d = distancia(x1,y1,x2,y2)
Int r1 if(r1 + r2 < d) return 0 ?
if (r1 + r2 == d) return 1
if(r1 + r2 > d ) return 1
Int x1 if (d==0) return 1 Int
Int y2
Int r2
5 2. Ejemplos
3. 1. Calculamos la distancia entre los centros
Dr. Cristian López Del Alamo
5 2. Ejemplos
3. 1. Calculamos la distancia entre los centros
Dr. Cristian López Del Alamo
5 2. Ejemplos
3. 1. Calculamos la distancia entre los centros
Dr. Cristian López Del Alamo
5 2. Ejemplos
3. 1. Calculamos la distancia entre los centros
Dr. Cristian López Del Alamo
5 2. Ejemplos
3. 1. Calculamos la distancia entre los centros
Dr. Cristian López Del Alamo
5 2. Ejemplos
3. 1. Calculamos la distancia entre los centros
Dr. Cristian López Del Alamo
5 2. Ejemplos
3. 1. Calculamos la distancia entre los centros
Dr. Cristian López Del Alamo
5 2. Ejemplos
3. 1. Calculamos la distancia entre los centros
Dr. Cristian López Del Alamo
5 2. Ejemplos
3. 1. Calculamos la distancia entre los centros
colisión
Int x1
Int y1 colisión = SeTocan(x1,y2,r1,x2,y2,r2)
mientras (colisión es 0)
x1 = x1 + 2
Int r1 colisión = SeTocan(x1,y2,r1,x2,y2,r2)
Int x1
Int y2
Int r2
Dr. Cristian López Del Alamo
Ejercicios
Dr. Cristian López Del Alamo
4. Proceso para
programar
42
Algoritmo
Leer el problema Logramos desarrollar
Analizar el problema el algoritmo
¿Qué necesito?
¿Qué me piden
retornar?
¿Cómo lo hago?
Dr. Cristian López Del Alamo
Algoritmo
No funciona
Lenguaje de
Programar
programación
Traducimos el
Conocer Sintaxis de
algoritmo a un
lenguaje
programa
Si Funciona
Dr. Cristian López Del Alamo
Ejercicios
1. Crear un algoritmo que determine si un número dado es positivo, negativo o cero. La entrada es un número, y la salida es una cadena que indica "Positivo",
"Negativo" o "Cero", dependiendo del número ingresado.
2. Crear un algoritmo que determine si un número dado es par o impar. La entrada es un número, y la salida es "Par" o "Impar".
3. Crear un algoritmo que determine si un número dado es múltiplo de 3, 5, o de ambos. La entrada es un número, y la salida es "Múltiplo de 3", "Múltiplo de 5"
o "Múltiplo de 3 y 5".
4. Crear un algoritmo que determine el tipo de triángulo según las longitudes de sus lados. La entrada son tres números que representan las longitudes de los
lados, y la salida es "Equilátero", "Isósceles" o "Escaleno".
5. Crear un algoritmo que determine el número mayor de dos números dados. La entrada son dos números, y la salida es el mayor de los dos.
6. Crear un algoritmo que determine si una cadena dada es un palíndromo o no. La entrada es una cadena, y la salida es "Es un palíndromo" o "No es un
palíndromo".
7. Crear un algoritmo que determine el día de la semana según una fecha dada. La entrada es una fecha (día, mes y año), y la salida es el día de la semana
correspondiente.
8. Crear un algoritmo que determine si un año dado es bisiesto o no. La entrada es un año, y la salida es "Año bisiesto" o "No es un año bisiesto".
Dr. Cristian López Del Alamo
¿ Preguntas ?
Gracias.
46