1. De los problemas a los programas
Modelo Formal
Algoritmos
Lenguajes de Programación
Curso de Nivelación de Algoritmos
Clase 1
Lic. Ernesto Mislej
emislej@gmail.com
Maestría y Carrera de Especialización en Explotación de Datos y Descubrimiento
de Conocimiento
12 de marzo de 2012
Lic. Ernesto Mislej Curso de Nivelación de Algoritmos
2. De los problemas a los programas
Modelo Formal
Algoritmos
Lenguajes de Programación
Computer science is no more about computers than
astronomy is about telescopes.
E. W. Dijkstra
Lic. Ernesto Mislej Curso de Nivelación de Algoritmos
3. De los problemas a los programas
Modelo Formal
Algoritmos
Lenguajes de Programación
De los problemas a los programas
Escribir un programa de computadoras comprende varios
pasos:
Formulación y especicación del problema.
Diseño de la solución.
Implantación.
Prueba.
Documentación.
Evaluación de la solución.
La mitad del trabajo es saber qué problema se va a resolver.
Lic. Ernesto Mislej Curso de Nivelación de Algoritmos
4. De los problemas a los programas
Modelo Formal
Algoritmos
Lenguajes de Programación
De los problemas a los programas
Al abordar los problemas, por lo general, éstos no tienen una
especicación simple y precisa.
Una buena estrategia es expresar ciertos aspectos de un
problema con un modelo formal recurriendo a casi cualquier
rama de las matemáticas y de las ciencias.
Y así aprovechar todo lo que se sabe del modelo.
Lic. Ernesto Mislej Curso de Nivelación de Algoritmos
5. De los problemas a los programas
Modelo Formal
Algoritmos
Lenguajes de Programación
Modelo Formal
Ejemplo
Elegir dónde ubicarse al subir a un colectivo lleno.
Lic. Ernesto Mislej Curso de Nivelación de Algoritmos
6. De los problemas a los programas
Modelo Formal
Algoritmos
Lenguajes de Programación
Modelo Formal
Ejemplo
Elegir 2 equipos de fútbol parejos, para jugar un picado.
Lic. Ernesto Mislej Curso de Nivelación de Algoritmos
7. De los problemas a los programas
Modelo Formal
Algoritmos
Lenguajes de Programación
Modelo Formal
Ejemplo
Llegar a Ciudad Universitaria desde el centro.
Lic. Ernesto Mislej Curso de Nivelación de Algoritmos
8. De los problemas a los programas
Modelo Formal
Algoritmos
Lenguajes de Programación
Modelo Formal
Ejemplo
Ir al supermercado con una lista de productos.
Lic. Ernesto Mislej Curso de Nivelación de Algoritmos
9. De los problemas a los programas
Modelo Formal
Algoritmos
Lenguajes de Programación
Modelo Formal
Ejemplo
Armar las mesas para un casamiento.
Lic. Ernesto Mislej Curso de Nivelación de Algoritmos
10. De los problemas a los programas
Modelo Formal
Algoritmos
Lenguajes de Programación
Algoritmos
Cuando se tiene el modelo adecuado al problema se puede
buscar una solución en función de ese modelo.
El objetivo inicial consiste en hallar una solución en forma de
algoritmo.
Un algoritmo es una secuencia nita de instrucciones, de
signicado preciso y puede ejecutarse con una cantidad nita
de esfuerzo.
Lic. Ernesto Mislej Curso de Nivelación de Algoritmos
11. De los problemas a los programas
Modelo Formal
Algoritmos
Lenguajes de Programación
Algoritmos
Ejemplo
Armar una red tendido de TV por Cable.
Unir todas las casas usando la mínima cantidad de cable.
Lic. Ernesto Mislej Curso de Nivelación de Algoritmos
12. De los problemas a los programas
Modelo Formal
Algoritmos
Lenguajes de Programación
Algoritmos
Kruskal (AGN):
1. Sea T un conjunto vacío.
2. Sea E el conjunto de ejes.
3. Extraer e el eje más pequeño de E .
4. Si T ∪ {e } tiene un ciclo, descartar e ;
sino agregar e a T .
5. Si T no une a todos los nodos, ir a 3.
6. Devolver T .
http://www-b2.is.tokushima-u.ac.jp/ ikeda/suuri/kruskal/KruskalApp.shtml?demo1
Lic. Ernesto Mislej Curso de Nivelación de Algoritmos
13. De los problemas a los programas
Modelo Formal
Algoritmos
Lenguajes de Programación
Algoritmos
Los algoritmos pueden estar expresados en lenguaje natural,
como el español, en un lenguaje de programación o incluso por
diseño de hardware.
El único requisito es que la especicación debe proveer una
descripción precisa de los pasos a seguir dentro del
procedimiento.
Lic. Ernesto Mislej Curso de Nivelación de Algoritmos
14. De los problemas a los programas
Modelo Formal
Algoritmos
Lenguajes de Programación
Los lenguajes de Programación
¾Qué lenguajes de programación conocen?
Nosotros vamos a usar Python:
http://www.python.org
Cada lenguaje tiene una sintaxis y una semántica en particular,
es decir, el conjunto de instrucciones que admite como válidas
y la manera particular de utilizarlas.
Lic. Ernesto Mislej Curso de Nivelación de Algoritmos
15. De los problemas a los programas
Modelo Formal
Algoritmos
Lenguajes de Programación
Los lenguajes de Programación
A su vez cada lenguaje de programación denota un paradigma
de programación.
Existen lenguajes que son declarativos como el SQL y
lenguajes que son imperativos (existen aún más distinciones).
Nosotros vamos por el modelo imperativo.
Veamos el entorno interactivo Python.
Lic. Ernesto Mislej Curso de Nivelación de Algoritmos