L.S.C.I. Jennifer Alejandra Montao Chvez Algoritmo
La palabra ALGORITMO se deriva de la
traduccin al latn de la palabra rabe Alkhwarzmi, nombre de un matemtico y astrnomo rabe que escribi un tratado sobre manipulacin de nmeros y ecuaciones en el siglo IX. Algoritmo
Un algoritmo es un mtodo para resolver
un problema mediante una serie de pasos precisos, definido y finitos. Mtodo Algortmico
Un algoritmo debe de producir un resultado en un
tiempo finito. Los mtodos que utilizan algoritmos se denominan mtodos algortmicos, en oposicin a los mtodos que implican algn juicio o interpretacin que se denominan mtodos heursticos. Los mtodos algortmicos se pueden implementar en computadoras; sin embargo, los procesos heursticos no han sido convertidos fcilmente en las computadoras. En los ltimos aos las tcnicas de Inteligencia Artificial han hecho posible la implementacin del proceso heurstico en computadoras. Caractersticas de un Algoritmo
Preciso: indicar el orden de realizacin en
cada paso. Definido: si se sigue dos veces, obtiene el mismo resultado cada vez. Finito: Tiene fin, un nmero determinado de pasos. Anlisis del Problema
La primera dase de la resolucin de
problemas con computadoras es el anlisis del problema. Esta fase requiere una clara definicin, donde se contemple exactamente lo que debe hacer el programa y el resultado o la solucin deseada. Anlisis del Problema
Dado que se busca una solucin por computadora, se
precisan especificaciones detalladas de entrada y salida. Para poder definir bien un problema es conveniente responder a las siguientes preguntas: Qu entradas se requieren (tipo y cantidad)? Cul es la salida deseada (tipo y cantidad)? Qu mtodo produce la salida deseada? En la etapa de anlisis del proceso de programacin se determina qu hace el programa. Diseo del Algoritmo
En la etapa de Diseo se denomina cmo hace el
programa la tarea solicitada. Los mtodos ms eficaces para el proceso de diseo se basan en el conocido por divide y vencers. Es decir, la resolucin de un problema complejo se realiza dividiendo el problema en subproblemasy a continuacin dividir estos subproblemas en otros de nivel ms bajo, hasta que pueda ser implementada una solucin en la computadora. Este mtodo se conoce tcnicamente como diseo descendente (top-down) o modular. El proceso de romper el problema en cada etapa y expresar cada paso en forma ms detallada se denomina refinamiento sucesivo. Diseo del Algoritmo
Cada subproblema es resuelto
mediante un mdulo (subprograma) que tiene un solo punto de entrada y un solo punto de salida. Diseo de Algoritmo
Cualquier programa bien diseado consta
de un programa principal (el mdulo de nivel ms alto) que llama a subprogramas (mdulos de nivel ms bajo) que a su vez pueden llamar a otros subprogramas. Los programas estructurados de esta forma se dice que tienen un diseo modular y el mtodo de romper el programa en mdulos ms pequeos se llama programacin modular. Diseo de Algoritmo
Los mdulos pueden ser planeados,
codificados, comprobados y depurados independientemente (incluso por diferentes programadores) y a continuacin combinarlos entre s. Diseo de Algoritmo
El proceso implica la ejecucin de los siguientes
pasos hasta que el programa se termina: 1. Programar un mdulo 2. Comprobar el mdulo 3. Si es necesario, depurar el mdulo 4. Combinar el mdulo con los mdulos anteriores. Diseo de Algoritmo
El proceso que convierte los
resultados del anlisis del problema en un diseo modular con refinamientos sucesivos que permitan una posterior traduccin a un lenguaje se denomina diseo del algoritmo. Diseo de Algoritmo
El diseo del algoritmo es
independiente del lenguaje de programacin en el que se vaya a codificar posteriormente. HERRAMIENTAS DE PROGRAMACIN
Las dos herramientas de programacin ms
utilizadas comnmente para disear algoritmos son:
Diagramas de Flujo Pseudocdigo Diagramas de Flujo
Un diagrama de flujo (flowchart) es una
representacin grfica de un algoritmo. Los smbolos utilizados han sido normalizados por el Instituto Norteamericano de Normalizacin (ANSI). Pseudocdigo
Es una herramienta de programacin en la que
las instrucciones se escriben en palabras similares al ingls o espaol, que facilitan tanto la escritura como la lectura de programas. En esencia, el pseudocdigo se puede definir como un lenguaje de especificaciones de algoritmos.