Você está na página 1de 34

Introduccin a los

Algoritmos
Lenguaje de Programacin, 2017 I
Magster Gustavo Hernando Puma Tejada
Universidad Nacional de San Agustn
Quin soy?
Gustavo Hernando Puma Tejada
Ingeniero de Sistemas
Universidad Catlica de Santa Mara
Master of Information Technology
Queensland University of Technology, Australia
Intereses principales:
Programacin
Videojuegos
Idiomas/lingstica
gustavo.puma.tejada@gmail.com
Piense en la serie de pasos que realiza diariamente
para llegar a la universidad.
Algoritmo
Etimologa
Una combinacin del latn algorismus, que a su vez
deriva de Al-Khwarizmi, un matemtico persa del siglo
9, y del griego arithmos, que significa nmero.
Una definicin informal
Un conjunto de pasos que describe cmo realizar una
tarea
Aunque el concepto ha existido por cientos de
aos, recin en la primera mitad del siglo XX el
concepto empieza a formalizarse.
Algoritmos en la vida diaria
Algoritmos para cocinar -> recetas
Algoritmos para encontrar el camino o ruta hacia
un sitio especfico -> direcciones
Algoritmo para operar una lavadora -> manual de
instrucciones
Algoritmo para tocar alguna composicin musical ->
partitura
Por qu algoritmos?
No existe ambigedad en las computadoras.
Para que una mquina pueda llevar a cabo una
tarea, es necesario expresar de manera detallada la
secuencia de pasos a realizar.
A la representacin real de un algoritmo se le
denomina programa.
Cmo hacer algoritmos?
Todo algoritmo parte de la necesidad de resolver
un problema.
Los algoritmos son diseados utilizando alguna
herramienta, como seudocdigo o diagramas de
flujos.
Luego del diseo, son implementados mediante un
lenguaje de programacin
Pseudocdigo
Es un lenguaje artificial e informal utilizado para
disear algoritmos.
Es similar a los lenguajes naturales: espaol, ingls,
etc.
Ejemplo 1
Escriba un algoritmo para determinar el promedio
final de un alumno. El promedio final se calcula
como el promedio de sus tres notas previas. El
algoritmo tambin debe indicar si aprob o no.
Pseudocdigo
Ingresar tres notas
Calcular el promedio sumando las tres notas y
dividiendo la suma entre tres
Si el promedio es mayor o igual a 13
Imprimir aprobado
Si no
Imprimir desaprobado
Otra versin
N1, N2, N3 <- Ingresar tres notas
PROM <- (N1 + N2 + N3) / 3
IF PROM >= 13
Imprimir aprobado
ELSE
Imprimir desaprobado
Ejemplo 2
Escriba un algoritmo que calcule las races de una
ecuacin cuadrtica de la forma:
2 + + = 0
Pista: utilice la frmula general
2 4
=
2
Pseudocdigo
a, b, c <- Ingresar coeficientes de la ecuacin
temp <- sqrt(b*b-4*a*c)
x1 <- (-b + temp)/(2*a)
x2 <- (b - temp)/(2*a)
Imprimir x1, x2
Pseudocdigo v2
a, b, c <- Ingresar coeficientes de la ecuacin
IF A == 0
Imprimir coeficiente no vlido
TERMINAR
temp <- sqrt(b*b-4*a*c)
x1 <- (-b + temp)/(2*a)
x2 <- (b - temp)/(2*a)
Imprimir x1, x2
Diagramas de flujo (DF)
Una representacin esquemtica de una secuencia
de operaciones
Podran considerarse una versin grfica del
pseudocdigo.
Elementos de un DF
Ejemplo 1 en DF
Ejemplo 2 en DF
Estructuras de decisin
Describen un punto en el que el programa puede
tomar caminos distintos
Ya vimos un ejemplo, en el cual si la nota es menor
a 13, lo consideramos desaprobado al alumno y si
es mayor o igual a 13 (el caso contrario), s
aprueba.
Todo punto de decisin requiere una condicin que
puede ser o verdadera o falsa.
En lenguaje natural es lo equivalente a decir: si X
entonces Y
Estructuras de decisin (2)
Es ms comn tener la siguiente estructura:
Si CONDICION entonces
Alternativa verdadera
Si no
Alternativa falsa
Fin si
O en ingls
if CONDICION then
Alternativa verdadera
else
Alternativa falsa
endif
Operadores relacionales
Ejemplo 3
Escriba un algoritmo que recibe dos valores
numricos y determina cul de los dos es el ms
grande
Pseudocdigo
val1, val2 <- Ingresar dos nmeros
IF val1 > val2 THEN
max <- val1
ELSE
max <- val2
ENDIF
Imprimir el valor ms grande es, max
Diagrama de flujo
Estructuras de control repetitivo
Son aquellas que nos permiten especificar una
secuencia de pasos que van a ejecutarse
repetidamente mientras se cumpla una condicin.
En lenguajes de programacin suelen ser las
siguientes: for, while, foreach, do while.
En comparacin a los humanos, las computadoras
infinitamente ms eficientes realizando clculos
repetitivos.
Ejemplo 4
Escriba un algoritmo que imprima los nmeros del
1 al 10.
Pseudocdigo
X <-1
MIENTRAS X < 11
Imprimir X
X <- X +1
Diagrama de flujo
Ejemplo 5
Escriba un algoritmo que imprima los nmeros
pares del 1 al 1 000 000
Ejemplo 6
Escriba un algoritmo que determine el nmero ms
grande de tres nmeros.
Repaso lgica proposicional
Preguntas?
Gracias
Referencias
Brookshear, J. G., Smith, D. T., & Brylow, D. (2012).
Introduccin a la Computacin. Pearson.
Diagrama de flujo nmeros del 1 al n
tutorialesprogramacionya.com
Imagen de tablas de verdad
logicautem.wordpress.com

Você também pode gostar