Sie sind auf Seite 1von 40

Algoritmos

Fundamentos de Programacin

Comunicarnos con el computador

No es una tarea fcil.

Instrucciones

Debemos aprender a realizar las instrucciones de forma correcta para que el computador lo entienda

Agenda
Algoritmos
Resolucin de problemas: Metodologa Fases de un programa Expresiones formales de un algoritmo: Lenguaje natural, Diagramas de Flujo y Pseudocdigo.

Problemas que nos enfrentamos diariamente


Tomar el bus para ir a la Universidad Comer Jugar al ftbol Poner un foco Subir y bajar escaleras

Actividad grupal

EL PROBLEMA DEL TANGRAM

Tangram
Forme grupos para resolver el siguiente problema: Uniendo TODAS las piezas de la derecha formen un cuadrado

Tangram
Una posible solucin

Tangram
Describa una secuencia de pasos para resolver el problema planteado. Reglas:
No puede numerar las piezas No utilice verbos que contengan la letra A

Tangram
Intercambie su hoja con la de otro grupo. Utilice la hoja del otro grupo, siga al pie de la letra las indicaciones para resolver el problema del Tangram.

Tangram
Responda estas preguntas
De qu se trataba el problema? Cmo lo resolvi? Le result sencillo encontrar la solucin? Qu conocimientos necesit para poder expresar la solucin (dominio)? Le result sencillo expresar la solucin?

No es lo mismo encontrar la solucin a un problema, que expresar la secuencia de pasos para resolverlo

Cmo resolvemos un problema?


Entender el ENTENDER EL PROBLEMA Problema

Entiendes todo lo que dice? Puedes replantear el problema en tus propias Mirar palabras? Configurar hacia Distingues cules son los datos? un plan atrs Sabes a qu quieres llegar? Hay suficiente informacin? Hay informacin extraa? Es este problema similar a algn otro que Ejecutar hayas un resuelto plan antes?

Cmo resolvemos un problema?


Entender el ProblemaUN PLAN CONFIGURAR

Ensayo y Error (Conjeturar y probar la conjetura). Mirar Usar una variable.Configurar hacia un plan atrs Buscar un Patrn . Hacer una lista. Resolver un problema similar ms simple. Hacer una figura. Ejecutar Hacer un diagrama.
un plan

Cmo resolvemos un problema?


Entender el Problema

EJECUTAR EL PLAN
Mirar Implementar las estrategias que Configurar escogiste para hacia un plan atrs solucionar el problema.

Puede ser que te des cuenta que debes tomar un nuevo curso o volver a empezar.
Ejecutar un plan

Cmo resolvemos un problema?


Entender el Problema

MIRAR HACIA ATRS


Mirar Es tu solucin correcta? Configurar Tu respuesta satisface lo establecido en el hacia un plan atrs problema?

Adviertes una solucin ms sencilla? Puedes ver cmo extender tu solucin a un caso general?
Ejecutar un plan

RESOLVER UN PROBLEMA USANDO EL COMPUTADOR

Metodologa para la resolucin de un problema usando un computador


El proceso de resolver un problema es complejo y se han desarrollado metodologas formales. De las metodologas podemos distinguir cuatro pasos bsicos:
Anlisis del problema (Entender el Problema) Diseo de la solucin (Configurar un plan) Implementacin de la solucin (escribir la solucin en un lenguaje de programacin para que el computador resuelva el problema o ejecute el plan trazado) Revisin (Mirar hacia atrs)

Metodologa para la resolucin de un problema usando un computador


La solucin es correcta? Hay una manera ms sencilla de obtenerla?

REVISIN

ANLISIS DEL PROBLEMA


Qu debe hacer el programa Definir y entender el problema Conocer las variables de entrada, los procesos y las salidas Identificar las reas de conocimiento

DISEO DE LA SOLUCIN
Cmo va a resolver el problema el programa Divide y vencers Algoritmo que lo resuelve Tcnicas de representacin de la solucin

IMPLEMENTACIN

Implementar la solucin en un lenguaje formal que el computador entienda

El problema de la tienda de libros en la


frontera americano-canadiense
Considere el siguiente problema: Un cliente americano compra un libro en una tienda localizada en la frontera con Canad en 41.27 dlares canadienses. El cliente le da al dependiente 40 dlares americanos, conociendo que el dlar americano tiene un cambio mayor que el canadiense. La poltica de la tienda es retornar el cambio del mismo con el mismo tipo de moneda con la cual pago el cliente. Suponga que un dlar canadiense cuesta 0.72 dlares americanos. Qu pasos debe realizar el dependiente para dar el cambio correcto?

ANLISIS DEL PROBLEMA

Anlisis del problema


Se deben responder las siguientes preguntas:
Qu debe hacer el programa? Cules son las entradas? Cules son las salidas ?

DISEO DE LA SOLUCIN

Diseo usando el computador


Resolver el problema usando el computador Disear el plan que permita resolver el problema

Diseo usando el computador


$40 americanos 0.72 = $55.55 canadienses

$55.55 - $41.27 = $14.28 canadienses $14.28 canadienses x 0.72 = $ 10.28 americanos

La solucin se debe expresar formalmente a travs de un Algoritmo.

Algoritmo
Un algoritmo es una lista bien definida, ordenada y finita de operaciones que permite llegar a la solucin de un problema. Dado un estado inicial y una entrada, a travs de pasos sucesivos y bien definidos se llega a un estado final, obteniendo una solucin.

Algoritmo (una receta de cocina)


Podemos considerarlo como una receta de cocina, donde los ingredientes son la entradas al algoritmo. La receta nos indica una serie de pasos finitos que se deben realizar para obtener el resultado, que en este caso es el plato final preparado. Puede existir ms de una solucin al mismo problema (varias maneras de cocinar el mismo plato), sin embargo el resultado final es el mismo, con sus pequeas variantes propias de la forma de resolverlo (el mismo plato puede tener mejor sabor si se lo prepara de una forma que de otra).

Algoritmo (una receta de cocina)


El encargado de escribir el algoritmo para resolver el problema es el programador (chef). No siempre el programador ser quien implemente la solucin al problema (cocinero). El algoritmo debe estar bien escrito para que cualquier persona (cocinero novato) pueda implementar dicha solucin y obtener el mismo resultado.

Formalizar el proceso
Hay que decirle exactamente al computador que hacer. Dividir la solucin en pasos formales que el computador pueda seguir hasta llegar a la solucin. El programador no solo debe resolver el problema, debe tener la habilidad de decirle al computador cmo resolverlo paso a paso.

Formalizar el proceso
Se pueden usar estructuras formales que permitan representar la solucin. La formalizacin nos ayuda a escribir una algoritmo que pueda ser analizado e interpretado por otras personas a travs de la formalizacin de la solucin.

Caractersticas de los algoritmos (Bien escrito?)


Claro

Algoritmo
Efectivo Finito

Formas de representacin de un algoritmo


Lenguaje natural Diagrama de flujo Pseudo-cdigo

Lenguaje hablado por las personas Puede no ser muy claro Suele ser ambiguo

Representacin grfica de la solucin

Utilizan estructuras formales Parecido a un lenguaje de programacin

Lenguaje formal
Serie de pasos en forma de secuencia. Utilizar palabras del lenguaje natural de comunicacin de las personas.
ALGORITMO EN LENGUAJE FORMAL PARA IR AL TRABAJO:
1. GIRA A LA DERECHA 2. AL DOBLAR LA ESQUINA SIGUE RECTO 3. ES EL EDIFICIO DE TRES PISOS DE PUERTA CAFE

El problema de la tienda de libros en la frontera


americano-canadiense (Lenguaje formal)
1. 2. 3. 4. 5.
6. 7. 8.

Inicio. Ver el MONTO_DE_DINERO_RECIBIDO en dlares americanos. Calcular el equivalente en dlares canadienses usando la ecuacin:
MONTO_DE_DINERO_RECIBIDO 0.72 = MONTO_CANADIENSE

Ver el PRECIO_DEL_LIBRO Calcular el cambio usando la ecuacin:


CAMBIO = MONTO_CANADIENSE - PRECIO_DEL_LIBRO

Calcular el equivalente en dlares usando la ecuacin:


CAMBIO _DOLARES = CAMBIO X 0.72

Dar el CAMBIO_DOLARES al cliente. Fin.

Diagramas de flujo
Grafos utilizados para representar un algoritmo. Los grafos utilizados son los siguientes:
Procesos

Operaciones de lectura y escritura


Inicio y fin Decisiones Flujo del programa.

El problema de la tienda de libros en la frontera


americano-canadiense (Diagrama de flujo)

Cmo sera si utilizramos un diagrama de flujo?

Pseudocdigo
Utilizado por programadores para describir algoritmos en un lenguaje humano simplificado parecido a un lenguaje de programacin.
AVANZA 100 GIRA 180 AVANZA 90

Manual de Pseudocdigo:
http://es.wikipedia.org/wiki/Pseudoc%C3%B3digo

IMPLEMENTACIN

Implementacin
Implementar la solucin al problema usando un lenguaje de programacin: LOGO, C, entre otros. Se usan estructuras formales en un lenguaje que el computador entiende. Se obtiene un programa

REVISIN

Revisin
Se prueba el programa y se verifica si la solucin que provee es la correcta. En este momento es donde probamos otras entradas para analizar el comportamiento del programa.

Conclusiones
Resolver un problema no es una tarea sencilla, y expresar su solucin formalmente puede resultar muy complejo Algunas veces para poder resolver un problema debemos tener conocimiento relacionado a la temtica del problema Existe ms de una forma de expresar una solucin a un problema