de Algoritmos Elaborado por: Michele Andr Universidad Simn Bolvar Marzo 2013 Page 2 Al finalizar este tutorial podr: Establecer la definicin y caractersticas de un algoritmo para la solucin de problemas usando el computador. Describir los elementos que conforman un algoritmo. Discutir una metodologa para la solucin de problemas usando el computador. Objetivo del Tutorial Page 3 1. Por la va de los Caracas tomar la carretera de La Costa que est pavimentada en un 99%. 2. Pasar los pueblos de Osma, Oritapo y Todasana. 3. Antes de llegar al pueblo de Caruao cruzar a mano derecha al ver un cartel que indica La Troja. 4. Recorrer alrededor de un kilmetro hasta llegar a casa. 5. Desde Los Caracas es aproximadamente una hora. Direccin de Luis Concepto de Algortmico Ejemplo 1: Page 4 1. El objetivo es rellenar una cuadrcula de 99 celdas dividida en bloques de 33 con las cifras del 1 al 9 partiendo de algunos nmeros ya dispuestos en algunas de las celdas. 2. No se debe repetir ninguna cifra en una misma fila, columna o bloque. 3. Resumiendo, hay que rellenar la cuadrcula de modo que: cada fila, cada columna y cada bloque de 3x3 contenga los nmeros del 1 al 9. Jugar SUDOKU Concepto de Algortmico Ejemplo 2: Page 5 Estos ejemplos, al igual que las instrucciones para usar el cajero automtico instalar un programa de computador cambiar un neumtico son Concepto de Algortmico Page 6 Algoritmos
Conjunto de instrucciones para resolver un problema Concepto de Algortmico Page 7 Los algoritmos son importantes para las computadoras porque stas son mquinas de propsito general para resolver problemas. Para que la computadora sea til se le debe dar las instrucciones y la tcnica para resolver el problema. Estas instrucciones comprenden los datos de entrada y el proceso o los pasos a seguir para obtener los datos de salida que corresponde a la solucin del problema. Concepto de Algoritmo - 1 Page 8 Algoritmos de Computadoras Un algoritmo es una secuencia ordenada de operaciones que cuando se ejecutan producen un resultado en un tiempo finito Definicin de Algoritmo Page 9 Algoritmos de Computadoras Un algoritmo es una secuencia ordenada de operaciones que cuando se ejecutan producen un resultado en un tiempo finito Definicin de Algoritmo Caractersticas que debe cumplir un algoritmo:
Debe ser ordenado. Debe tener operaciones que no son ambiguas. Detenerse en un tiempo finito. Producir un resultado.
Page 10 El algoritmo debe ser ordenado Un algoritmo es una coleccin de operaciones o instrucciones, y debe saberse exactamente el orden en el cual deben ejecutarse. Si el orden no est claro se puede ejecutar la instruccin incorrecta o no tener certeza sobre cul es la prxima instruccin que debe ejecutarse. Caractersticas de los Algoritmos Page 11 El algoritmo debe ser ordenado Un algoritmo es una coleccin de operaciones o instrucciones, y debe saberse exactamente el orden en el cual deben ejecutarse. Si el orden no est claro se puede ejecutar la instruccin incorrecta o no tener certeza sobre cul es la prxima instruccin que debe ejecutarse. Caractersticas de los Algoritmos Ejemplo: Analice las siguientes instrucciones para lavar el cabello: 1. Mojar el cabello 2. Echar champ 3. Hacer espuma 4. Enjuagar 5. Repetir Page 12 El algoritmo debe ser ordenado Un algoritmo es una coleccin de operaciones o instrucciones, y debe saberse exactamente el orden en el cual deben ejecutarse. Si el orden no est claro se puede ejecutar la instruccin incorrecta o no tener certeza sobre cul es la prxima instruccin que debe ejecutarse. Caractersticas de los Algoritmos Ejemplo: Analice las siguientes instrucciones para lavar el cabello: 1. Mojar el cabello 2. Echar champ 3. Hacer espuma 4. Enjuagar 5. Repetir En el paso 5 no se establece claramente el orden de ejecucin de la siguiente instruccin. La instruccin repetir no indica cual es la prxima instruccin o instrucciones a ejecutar, ni cuantas veces repetir. Page 13 El algoritmo debe tener operaciones no ambiguas Cada operacin o instruccin debe ser lo suficientemente clara que no requiera ser simplificada. Caractersticas de los Algoritmos - 1 Page 14 El algoritmo debe tener operaciones no ambiguas Cada operacin o instruccin debe ser lo suficientemente clara que no requiera ser simplificada. Caractersticas de los Algoritmos - 1 Ejemplo: Dada una lista de nmeros, una persona puede ordenarlas de menor a mayor con una simple instruccin "Ordene los nmeros de menor a mayor". Un computador para esto requiere de ms detalles, se le debe indicar, cmo encontrar el nmero ms pequeo, como comparar los nmeros entre s, etc. La instruccin "Ordene estos nmeros" es ambigua para el computador porque no tiene las instrucciones para ordenar. El computador slo posee un conjunto de instrucciones conocidas como primitivas que son las que comprende y que puede ejecutar. Page 15 Un algoritmo debe ser finito Un algoritmo debe estar compuesto por un nmero finito de operaciones y debe completar su ejecucin en un tiempo finito. Caractersticas de los Algoritmos - 2 Page 16 Un algoritmo debe ser finito Caractersticas de los Algoritmos - 2 Ejemplo: Suponga un algoritmo para imprimir todos los nmeros enteros mayores que 1. Los pasos seran: Escribir el nmero 2 Escribir el nmero 3 Escribir el nmero 4 .. y as sucesivamente. Analice el algoritmo Page 17 Un algoritmo debe ser finito Caractersticas de los Algoritmos - 2 Ejemplo: Suponga un algoritmo para imprimir todos los nmeros enteros mayores que 1. Los pasos seran: Escribir el nmero 2 Escribir el nmero 3 Escribir el nmero 4 .. y as sucesivamente. El algoritmo parece bastante claro, pero tiene dos problemas. 1. Tiene un nmero infinito de pasos porque existe un nmero infinito de nmeros enteros mayores que uno (1). 2. Se va a ejecutar infinitamente tratando de llegar al nmero infinito. Page 18 Un algoritmo debe ser finito Caractersticas de los Algoritmos - 2 Ejemplo: Suponga un algoritmo para imprimir todos los nmeros enteros mayores que 1. Los pasos seran: Escribir el nmero 2 Escribir el nmero 3 Escribir el nmero 4 .. y as sucesivamente. Todo algoritmo debe tener alguna operacin que le indica que debe detenerse. En el ejemplo podra ser imprimir los primeros cien nmeros. Page 19 Un algoritmo produce un resultado: El algoritmo produce como resultado: La solucin del problema. o Un mensaje que indique que no se puede obtener la solucin. Caractersticas de los Algortmicos - 3 Page 20 Los elementos que conforman un algoritmo son: Entrada: Datos iniciales que posee un algoritmo antes de ejecutarse. Puede tener cero o ms datos de entrada. Proceso: Acciones que lleva a cabo el algoritmo Salida: El resultado que se obtiene de la ejecucin del algoritmo. La solucin del problema. Elementos de un Algoritmo Page 21 Los elementos que conforman un algoritmo son: Entrada: Datos iniciales que posee un algoritmo antes de ejecutarse. Puede tener cero o ms datos de entrada. Proceso: Acciones que lleva a cabo el algoritmo Salida: El resultado que se obtiene de la ejecucin del algoritmo. La solucin del problema. Elementos de un Algoritmo
Datos de Entrada
Datos de Salida
Algoritmo
Procesos/ Acciones
Page 22 Los pasos para resolver un problema son: Anlisis del Problema Diseo del Algoritmo Verificacin del Algoritmo Metodologa para Construir un Algoritmo Page 23 Los pasos para resolver un problema son: Anlisis del Problema Diseo del Algoritmo Verificacin del Algoritmo Metodologa para Construir un Algoritmo 1. Se determina la informacin que se debe producir como salida. 2. Se identifica la informacin necesaria para resolver el problema. 3. Se establecen los elementos que se tiene y los elementos que se deben solicitar para resolver el problema. 4. Se determina el camino a seguir para obtener la solucin 5. Se Identifica el problema. Page 24 Los pasos para resolver un problema son: Anlisis del Problema Diseo del Algoritmo Verificacin del Algoritmo Metodologa para Construir un Algoritmo 1. Se busca la manera ms fcil para simplificar la propuesta. 2. Se identifican los procesos ms importantes y se colocan en orden segn su importancia y precedencia, esto sirve como un algoritmo inicial. 3. El algoritmo inicial se va refinando sucesivamente hasta obtener una solucin ms detallada y fcil de traducir a un lenguaje de programacin. Page 25 Los pasos para resolver un problema son: Anlisis del Problema Diseo del Algoritmo Verificacin del Algoritmo Metodologa para Construir un Algoritmo 1. Se verifica que el algoritmo cumple con los procesos diseados y produce el resultado esperado. 2. Se realiza una prueba del algoritmo mediante su ejecucin manual con datos significativos, y se comprueba si se obtienen los resultados esperados para la salida. Page 26 Ejemplo: Construir un algoritmo para determinar el mayor de tres nmeros enteros distintos . Ejemplo de Construccin de un Algoritmo Fase de Anlisis. Se establecen: Datos de Entrada: Num1, Num2, Num3
Salida: MXIMO representa el mayor entre los tres nmeros Proceso: Representa la operacin o conjunto de operaciones cuyo objetivo es obtener la solucin al problema. La operacin en este caso es: Comparar los tres nmeros entre ellos para determinar el mayor.
Page 27 Ejemplo de Construccin de un Algoritmo Fase de Diseo. Algoritmo para determinar el mayor de tres nmeros enteros distintos Algoritmo Primera Versin 1. Comparar el primero y el segundo nmero y deducir cul es el mayor 2. Comparar el mayor anterior con el tercer nmero y deducir cul es el mayor 3. Este ser el resultado Page 28 Ejemplo de Construccin de un Algoritmo Fase de Diseo. Algoritmo para determinar el mayor de tres nmeros enteros distintos Algoritmo Primera Versin 1. Comparar el primero y el segundo nmero y deducir cul es el mayor 2. Comparar el mayor anterior con el tercer nmero y deducir cul es el mayor 3. Este ser el resultado Los pasos anteriores se pueden descomponer en otros pasos ms simples. Es lo que se denomina refinamiento del algoritmo Page 29 Ejemplo de Construccin de un Algoritmo Fase de Diseo. Algoritmo para determinar el mayor de tres nmeros enteros distintos Algoritmo Primera Versin 1. Comparar el primero y el segundo nmero y deducir cul es el mayor 2. Comparar el mayor anterior con el tercer nmero y deducir cul es el mayor 3. Este ser el resultado Algoritmo Versin Refinada. Obtener el primer nmero (entrada), denominado NUM1 Obtener el segundo nmero (entrada), denominado NUM2 Comparar NUM1 con NUM2 y seleccionar el mayor. Llamar a este nmero MAXIMO Obtener el tercer nmero (entrada), denominado NUM3 Comparar MAXIMO con NUM3 y seleccionar el mayor. Denominar a este nmero MAXIMO Mostrar en la pantalla el valor MAXIMO
Page 30 Usted debe ser capaz de: Establecer la definicin y caractersticas de un algoritmo para la solucin de problemas usando el computador. Describir los elementos que conforman un algoritmo. Discutir una metodologa para la solucin de problemas usando el computador. En Resumen: con respecto a Algoritmos Page 31 Enfoques Top Down y Bottom Up Page 32 Page 33 Page 34 Page 35 Page 36 Page 37 Page 38 Page 39 Page 40 Page 41 Page 42 Page 43