Вы находитесь на странице: 1из 30

Informatica

Software - Algoritmo
Alejandro Furfaro

Marzo 2011


Introduccion

Algoritmos

Estcucturas de Programacion

estructurada
Programacion

Conclusiones

Temario

Alejandro Furfaro
Software - Algoritmo

Introduccion.

Algoritmo.

Estructuras de programacion.

estructurada
Programacion

Conclusiones


Introduccion

Algoritmos

Estcucturas de Programacion

estructurada
Programacion

Conclusiones

Primeros conceptos

Protodefinicion
Cita N1
a cualquier problema de computo

La solucion
involucra una
serie de acciones ejecutadas en un orden especfico (Deitel)
Cita N2

Informalmente, un algoritmo es un procedimiento de calculo


bien definido que toma un cierto valor, o conjunto de valores,
como entrada y produce un cierto valor, o conjunto de valores,
como salida. Un algoritmo es, entonces, una secuencia de
pasos computacionales que transforman la entrada en una
salida.(Cormen)

Alejandro Furfaro
Software - Algoritmo


Introduccion

Algoritmos

Estcucturas de Programacion

estructurada
Programacion

Conclusiones

Primeros conceptos

Protodefinicion
Cita N1
a cualquier problema de computo

La solucion
involucra una
serie de acciones ejecutadas en un orden especfico (Deitel)
Cita N2

Informalmente, un algoritmo es un procedimiento de calculo


bien definido que toma un cierto valor, o conjunto de valores,
como entrada y produce un cierto valor, o conjunto de valores,
como salida. Un algoritmo es, entonces, una secuencia de
pasos computacionales que transforman la entrada en una
salida.(Cormen)

Alejandro Furfaro
Software - Algoritmo


Introduccion

Algoritmos

Estcucturas de Programacion

estructurada
Programacion

Conclusiones

Primeros conceptos

Protodefinicion
Cita N1
a cualquier problema de computo

La solucion
involucra una
serie de acciones ejecutadas en un orden especfico (Deitel)
Cita N2

Informalmente, un algoritmo es un procedimiento de calculo


bien definido que toma un cierto valor, o conjunto de valores,
como entrada y produce un cierto valor, o conjunto de valores,
como salida. Un algoritmo es, entonces, una secuencia de
pasos computacionales que transforman la entrada en una
salida.(Cormen)

Alejandro Furfaro
Software - Algoritmo


Introduccion

Algoritmos

Estcucturas de Programacion

estructurada
Programacion

Conclusiones

Primeros conceptos

Protodefinicion
Cita N1
a cualquier problema de computo

La solucion
involucra una
serie de acciones ejecutadas en un orden especfico (Deitel)
Cita N2

Informalmente, un algoritmo es un procedimiento de calculo


bien definido que toma un cierto valor, o conjunto de valores,
como entrada y produce un cierto valor, o conjunto de valores,
como salida. Un algoritmo es, entonces, una secuencia de
pasos computacionales que transforman la entrada en una
salida.(Cormen)

Alejandro Furfaro
Software - Algoritmo


Introduccion

Algoritmos

Estcucturas de Programacion

estructurada
Programacion

Conclusiones

Primeros conceptos

Protodefinicion
Cita N1
a cualquier problema de computo

La solucion
involucra una
serie de acciones ejecutadas en un orden especfico (Deitel)
Cita N2

Informalmente, un algoritmo es un procedimiento de calculo


bien definido que toma un cierto valor, o conjunto de valores,
como entrada y produce un cierto valor, o conjunto de valores,
como salida. Un algoritmo es, entonces, una secuencia de
pasos computacionales que transforman la entrada en una
salida.(Cormen)

Alejandro Furfaro
Software - Algoritmo


Introduccion

Algoritmos

Estcucturas de Programacion

estructurada
Programacion

Primeros conceptos

Operaciones en un orden determinado

Para resolver un problema mediante un algortimo se debe


determinar
1

Acciones a ejecutar

El orden en que las acciones se deben ejecutar

Alejandro Furfaro
Software - Algoritmo

Conclusiones


Introduccion

Algoritmos

Estcucturas de Programacion

estructurada
Programacion

Conclusiones

Escribiendo Algoritmos

Como escribo un algoritmo si no se aun


nada de

programacion?

Una forma es usando Pseudocodigo


O sea, usando un lenguaje artificial, informal, diramos...
es casi como escribir el algoritmo con nuestras palabras
Primer ejemplo... Generan el mismo resultado?
1)
Ir a la Facultad (Opcion

2)
Ir a la Facultad (Opcion

Levantarme de la cama
Darme una ducha
Vestirme
Desayunar
Caminar hasta la parada del micro
Tomar el micro indicado

Levantarme de la cama
Darme una ducha
Desayunar
Caminar hasta la parada del micro
Vestirme
Tomar el micro indicado

2 lleguemos a la Facultad
Es bastante poco probable que con el algoritmo de la opcion
Alejandro Furfaro
Software - Algoritmo


Introduccion

Algoritmos

Estcucturas de Programacion

estructurada
Programacion

Conclusiones

Escribiendo Algoritmos

Como escribo un algoritmo si no se aun


nada de

programacion?

Una forma es usando Pseudocodigo


O sea, usando un lenguaje artificial, informal, diramos...
es casi como escribir el algoritmo con nuestras palabras
Primer ejemplo... Generan el mismo resultado?
1)
Ir a la Facultad (Opcion

2)
Ir a la Facultad (Opcion

Levantarme de la cama
Darme una ducha
Vestirme
Desayunar
Caminar hasta la parada del micro
Tomar el micro indicado

Levantarme de la cama
Darme una ducha
Desayunar
Caminar hasta la parada del micro
Vestirme
Tomar el micro indicado

2 lleguemos a la Facultad
Es bastante poco probable que con el algoritmo de la opcion
Alejandro Furfaro
Software - Algoritmo


Introduccion

Algoritmos

Estcucturas de Programacion

estructurada
Programacion

Conclusiones

Escribiendo Algoritmos

Como escribo un algoritmo si no se aun


nada de

programacion?

Una forma es usando Pseudocodigo


O sea, usando un lenguaje artificial, informal, diramos...
es casi como escribir el algoritmo con nuestras palabras
Primer ejemplo... Generan el mismo resultado?
1)
Ir a la Facultad (Opcion

2)
Ir a la Facultad (Opcion

Levantarme de la cama
Darme una ducha
Vestirme
Desayunar
Caminar hasta la parada del micro
Tomar el micro indicado

Levantarme de la cama
Darme una ducha
Desayunar
Caminar hasta la parada del micro
Vestirme
Tomar el micro indicado

2 lleguemos a la Facultad
Es bastante poco probable que con el algoritmo de la opcion
Alejandro Furfaro
Software - Algoritmo


Introduccion

Algoritmos

Estcucturas de Programacion

estructurada
Programacion

Conclusiones

Escribiendo Algoritmos

Como escribo un algoritmo si no se aun


nada de

programacion?

Una forma es usando Pseudocodigo


O sea, usando un lenguaje artificial, informal, diramos...
es casi como escribir el algoritmo con nuestras palabras
Primer ejemplo... Generan el mismo resultado?
1)
Ir a la Facultad (Opcion

2)
Ir a la Facultad (Opcion

Levantarme de la cama
Darme una ducha
Vestirme
Desayunar
Caminar hasta la parada del micro
Tomar el micro indicado

Levantarme de la cama
Darme una ducha
Desayunar
Caminar hasta la parada del micro
Vestirme
Tomar el micro indicado

2 lleguemos a la Facultad
Es bastante poco probable que con el algoritmo de la opcion
Alejandro Furfaro
Software - Algoritmo


Introduccion

Algoritmos

Estcucturas de Programacion

de un algoritmo
Formalizacion

Erase una vez, 4 estrcuturas

Secuencia

(o seleccion)

Decision

Iteracion

Salto Incondicional

Alejandro Furfaro
Software - Algoritmo

estructurada
Programacion

Conclusiones


Introduccion

Algoritmos

Estcucturas de Programacion

estructurada
Programacion

Conclusiones

de un algoritmo
Formalizacion

Estructura de Secuencia

Se llaman de este modo ya que no son otra cosa que

ordenes
que se ejecutan en secuencia respecto de la
anterior.
de la otra en el orden en
Se ejecutan una a continuacion
escritas.
que estan
El Algoritmo de ejemplo anterior no es otra cosa que una
de estructuras de secuencia.
sucesion

Alejandro Furfaro
Software - Algoritmo


Introduccion

Algoritmos

Estcucturas de Programacion

estructurada
Programacion

Conclusiones

de un algoritmo
Formalizacion

Estructura de Secuencia

Se llaman de este modo ya que no son otra cosa que

ordenes
que se ejecutan en secuencia respecto de la
anterior.
de la otra en el orden en
Se ejecutan una a continuacion
escritas.
que estan
El Algoritmo de ejemplo anterior no es otra cosa que una
de estructuras de secuencia.
sucesion

Alejandro Furfaro
Software - Algoritmo


Introduccion

Algoritmos

Estcucturas de Programacion

estructurada
Programacion

de un algoritmo
Formalizacion

Estructura de Decision

Permiten elegir entre diversos cursos de accion.


Veamos nuevamente el algoritmo Ir a trabajar
Ir a trabajar:
Levantarme de la cama
Darme una Ducha
Vestirme
Si estoy a tiempo
Desayunar
Caminar hasta la parada del micro
Tomar el micro indicado

Alejandro Furfaro
Software - Algoritmo

Conclusiones


Introduccion

Algoritmos

Estcucturas de Programacion

estructurada
Programacion

Conclusiones

de un algoritmo
Formalizacion

Estructura de Decision

evalua

La estructura de Decision
una condicion.
contesta la pregunta:
En el caso anterior la condicion
estoy a tiempo?
de la condicion
es verdadera (es decir,
Si la evaluacion
tengo tiempo suficiente), entonces ejecuta el bloque de
En nuestro caso
instrucciones contenidas por la seleccion.
Desayunar.

Alejandro Furfaro
Software - Algoritmo


Introduccion

Algoritmos

Estcucturas de Programacion

estructurada
Programacion

de un algoritmo
Formalizacion

Estructura de Decision
mejora al algoritmo Ir a trabajar
Una pequena
Levantarme de la cama
Darme una Ducha
Vestirme
Si estoy a tiempo
Desayunar
Sino
Llevar dos manzanas para el camino
Caminar hasta la parada del micro
Tomar el micro indicado

Alejandro Furfaro
Software - Algoritmo

Conclusiones


Introduccion

Algoritmos

Estcucturas de Programacion

estructurada
Programacion

de un algoritmo
Formalizacion

Estructura de Decision
Correspondencia con el lenguaje formal
Levantarme de la cama
Darme una Ducha
Vestirme
if (estoy a tiempo)
Desayunar
else
Llevar dos manzanas para el camino
Caminar hasta la parada del micro
Tomar el micro indicado

Alejandro Furfaro
Software - Algoritmo

Conclusiones


Introduccion

Algoritmos

Estcucturas de Programacion

estructurada
Programacion

Conclusiones

de un algoritmo
Formalizacion

Estructura de Iteracion

denominada repeticion.

Tambien
Indica que un bloque de acciones se repite mientras una
evaluada resulte verdadera.
condicion
Supongamos que en nuestro algoritmo deseamos

aprovechar el tiempo si nos levantasemos


mas
temprano. . .

Alejandro Furfaro
Software - Algoritmo


Introduccion

Algoritmos

Estcucturas de Programacion

de un algoritmo
Formalizacion

Algritmo con iteracion

Lee el diario mientras tenga tiempo


Levantarme de la cama
Darme una Ducha
Vestirme
Desayunar
Mientras quede tiempo
Leer el diario
Caminar hasta la parada del micro
Tomar el micro indicado

Alejandro Furfaro
Software - Algoritmo

estructurada
Programacion

Conclusiones


Introduccion

Algoritmos

Estcucturas de Programacion

estructurada
Programacion

de un algoritmo
Formalizacion

Algritmo con iteracion

Correspondencia con el lenguaje formal


Levantarme de la cama
Darme una Ducha
Vestirme
Desayunar
while (quede tiempo)
Leer el diario
Caminar hasta la parada del micro
Tomar el micro indicado

Alejandro Furfaro
Software - Algoritmo

Conclusiones


Introduccion

Algoritmos

Estcucturas de Programacion

estructurada
Programacion

Conclusiones

de un algoritmo
Formalizacion

Salto incondicional

Permite alterar el flujo de instrucciones de manera


arbitraria.
por
Incondicional implica que no se evalua
una condicion
verdadero o falso para alterar la secuencia de nuestro
algoritmo, sino que simplemente se la altera, sin mas.

Alejandro Furfaro
Software - Algoritmo


Introduccion

Algoritmos

Estcucturas de Programacion

estructurada
Programacion

Conclusiones

Antecedentes

Inicios de la Industria del Software

En la decada
del 60 los requerimientos a las aplicaciones

eran muy fuertes, y la mala calidad del codigo


escrito
y su mantenimiento.
impeda su evolucion
Se trata de una industria muy joven que no haba aun

de
desarrollado normas de calidad para la elaboracion

codigo
que sea mas facilmente
legible, escalable, y
mantenible.

Por entonces haba un consenso unanime


tanto en

ambitos
cientficos como profesionales que la estructura
de Salto Incondicional era la responsable del problema.

Alejandro Furfaro
Software - Algoritmo


Introduccion

Algoritmos

Estcucturas de Programacion

estructurada
Programacion

Conclusiones

Antecedentes

1er. Paradigma de Programacion

En 1965 Bohm
y Jacopini, publicaron en ACM (Association
of Computer Machinery) un trabajo en el que demostraron

por metodo
cientfico que cualquier algoritmo puede ser
escrito utilizando las tres primeras estructuras de
(dicho de otro modo prescindiendo de la
programacion
estructura de Salto Condicional).
del 1er.
Estas conclusiones provocaron la aparicion
conocido como
PARADIGMA de Programacion
Estructurada.
Programacion

Alejandro Furfaro
Software - Algoritmo


Introduccion

Algoritmos

Estcucturas de Programacion

estructurada
Programacion

Conclusiones

de Algoritmos
Metodologa de resolucion

top-down
Aproximacion

Supongamos un problema de compejidad media:


Calcular el promedio de los valores de temperatura ledos
desde un archivo
Dividamos esta tarea en una serie de tareas mas

pequenas...
inicializar variables
Ingresa los datos llevando la cuenta de los mismos.
Calcula el promedio y presenta en pantalla el resultado

Alejandro Furfaro
Software - Algoritmo


Introduccion

Algoritmos

Estcucturas de Programacion

estructurada
Programacion

de Algoritmos
Metodologa de resolucion

Bajemos mas a detalle (top - down)


Inicializa contador en 0
Inicializa total en 0
Abre el arcivo e inicializa su descriptor
Mientras no alcance fin del archivo (EOF)
Lee siguiente valor de temperatura
Suma el valor a total
Incrementa en 1 contador
Si contador no es igual a 0
Divide total por contador
Imprime el resultado en pantalla
Sino
Imprime en pantalla No hay valores de temperatura
almacenados
Alejandro Furfaro
Software - Algoritmo

Conclusiones


Introduccion

Algoritmos

Estcucturas de Programacion

estructurada
Programacion

de Algoritmos
Metodologa de resolucion

Bajemos mas a detalle (top - down)


Inicializa contador en 0
Inicializa total en 0
Abre el arcivo e inicializa su descriptor
Mientras no alcance fin del archivo (EOF)
Lee siguiente valor de temperatura
Suma el valor a total
Incrementa en 1 contador
Si contador no es igual a 0
Divide total por contador
Imprime el resultado en pantalla
Sino
Imprime en pantalla No hay valores de temperatura
almacenados
Alejandro Furfaro
Software - Algoritmo

Conclusiones


Introduccion

Algoritmos

Estcucturas de Programacion

estructurada
Programacion

de Algoritmos
Metodologa de resolucion

Bajemos mas a detalle (top - down)


Inicializa contador en 0
Inicializa total en 0
Abre el arcivo e inicializa su descriptor
Mientras no alcance fin del archivo (EOF)
Lee siguiente valor de temperatura
Suma el valor a total
Incrementa en 1 contador
Si contador no es igual a 0
Divide total por contador
Imprime el resultado en pantalla
Sino
Imprime en pantalla No hay valores de temperatura
almacenados
Alejandro Furfaro
Software - Algoritmo

Conclusiones


Introduccion

Algoritmos

Estcucturas de Programacion

estructurada
Programacion

Conclusiones

Que aprendimos?

Concepto de algoritmo como resultado de una ejecucion


de paos en un orden determinado
como la forma de
Estructuras de programacion
implementar un algoritmo
estructurada como la forma de
Concepto de programacion

arganizar un programa dividiendolo


en tareas, aplicando el
desarrollo top - down

Vimos que con pseudo codigo


logramos explicitar nuestro
algoritmo y dejarlo listo para escribirlo en el lenguaje de
que mas preferamos.
programacion

Alejandro Furfaro
Software - Algoritmo

Вам также может понравиться