REPASO Computadora Dato Información Representación de la información (textos, valores numéricos, imágenes, sonidos) Codificación de la información (Sistema de numeración) Dispositivos de Almacenamiento Masivo Software Lenguaje de Programación Traductor Compilador
Docente: Mercedes Ccesa Quincho
FASES EN LA RESOLUCIÓN DE PROBLEMAS Definición y análisis del Problema Diseño del Algoritmo
Herramientas para diseñar algoritmos
Codificación
Compilación y ejecución
Verificación y depuración
Documentación y mantenimiento
Docente: Mercedes Ccesa Quincho
ALGORITMO se deriva de la traducción al latín de la palabra Alkhô-warîzmi , nombre de un matemático y astrónomo árabe que escribió un tratado sobre manipulación de números y ecuaciones en el siglo IX. Un algoritmo es un método para resolver un problema mediante una serie de pasos precisos (indica el orden de realización en cada paso), definidos (si se sigue dos veces, obtiene el mismo resultado cada vez) y finitos. 1. DEFINICIÓN Y ANÁLISIS DEL PROBLEMA Consiste en entender de qué se trata el problema planteado y esbozar su posible solución, concluyendo con una clara definición de tres aspectos: 1º qué es lo que nos piden, es decir, definición del resultado o solución deseada (para qué). 2º cómo obtener lo que nos piden (qué hacer). 3º qué necesitamos para obtener los resultados pedidos (con qué). Esto último nos facilitará la construcción de lo que denominaremos especificación funcional. 1.1 ESPECIFICACIÓN FUNCIONAL Consiste en determinar las funciones que se van a realizar (qué hacer) y sus respectivas entradas (con qué) y salidas (para qué):
Donde: entrada son los argumentos (variables o constantes)
que se requieren para resolver un problema, salida son los resultados (argumentos) que se desean obtener una vez resuelto el problema y proceso es el procedimiento(s) u operación(es) que deben efectuarse sobre las entradas para obtener las salidas deseadas. 1.2 ESPECIFICACIÓN DE LOS ARGUMENTOS O PARÁMETROS Consiste en la documentación de los argumentos o parámetros (sean estos de entrada, salida o intermedios) requeridos en la solución del problema, mediante la elaboración de una tabla que contemple los siguientes aspectos: 1.3 REQUISITOS O REQUERIMIENTOS ADICIONALES Y RESTRICCIONES A LA SOLUCIÓN.
Consiste en determinar bajo qué restricciones se
ha de operar y cuales son las medidas de rendimiento y calidad que debe tener el sistema (programa). 2. DISEÑO DEL ALGORITMO Consiste en diseñar cómo hace el programa la tarea solicitada. En forma general consiste en dividir el programa en subprogramas y cada subprograma en módulos (diseño descendente-Top down). El proceso de romper el problema en cada etapa y expresar cada paso en forma más detallada se denomina refinamiento sucesivo. 2. DISEÑO DEL ALGORITMO Los módulos pueden ser planeados, codificados, comprobados y depurados independientemente (incluso por diferentes programadores) y a continuación combinarlos entre sí. El proceso implica la ejecución de los siguientes pasos hasta que el programa se termina: 1. Programar un módulo. 2. Comprobar el módulo. 3. Si es necesario, depurar el módulo. 4. Combinar el módulo con los módulos anteriores. 2. DISEÑO DEL ALGORITMO El proceso que convierte los resultados del análisis del problema en un diseño modular con refinamientos sucesivos que permitan una posterior traducción a un lenguaje se denomina diseño del algoritmo. El diseño del algoritmo es independiente del lenguaje de programación en el que se vaya a codificar posteriormente. 3. HERRAMIENTAS PARA DISEÑAR ALGORITMOS
Las dos herramientas más utilizadas comúnmente
para diseñar algoritmos son: diagramas de flujo y pseudocódigos.
a) Diagramas de Flujo: representación gráfica de
un algoritmo. b) Pseudocódigo: lenguaje de especificación de algoritmos (el algoritmo se representa mediante palabras similares al inglés o al español, para facilitar tanto la lectura como la escritura de programas. 3. HERRAMIENTAS PARA DISEÑAR ALGORITMOS 3. HERRAMIENTAS PARA DISEÑAR ALGORITMOS 4. CODIFICACIÓN Es la escritura en un lenguaje de programación de la representación del algoritmo desarrollado en la etapa de diseño. El resultado de la codificación es un programa fuente. Dado que el diseño de un algoritmo es independiente del lenguaje de programación utilizado para su implementación, el código puede ser escrito con igual facilidad en un lenguaje o en otro. 5. COMPILACIÓN Y EJECUCIÓN Es el proceso de traducción del programa fuente al lenguaje de máquina. Este proceso se realiza con el compilador y el Sistema Operativo. El resultado, si no hay errores, es la obtención del programa objeto que todavía no es ejecutable directamente. Luego, mediante el Sistema Operativo se realiza la carga del programa objeto con las librerías del programa compilador, el resultado es un programa ejecutable. Cuando el programa ejecutable se ha creado, se puede ejecutar el programa desde el Sistema Operativo generalmente con sólo teclear su nombre. Si no hay errores se obtiene como salida los resultados del programa. 6. VERIFICACIÓN Y DEPURACIÓN La verificación o compilación de un programa es el proceso de ejecución del programa con una amplia variedad de datos de entrada, llamados datos de test o prueba, que determinarán si el programa tiene o no errores (“bugs”). La depuración es el proceso de encontrar los errores del programa y corregir o eliminar dichos errores. Cuando se ejecuta un programa, se pueden producir tres tipos de errores: De compilación(errores de sintaxis), de ejecución (instrucciones que la computadora entiende pero no ejecuta) y lógicos (lógica del programa) 7. DOCUMENTACIÓN Y MANTENIMIENTO La documentación de un problema consta de las descripciones de los pasos a dar en el proceso de resolución de dicho problema. La importancia de la documentación debe ser destacada por su decisiva influencia en el producto final. Programas pobremente documentados son difíciles de leer, más difíciles de depurar y casi imposibles de mantener y modificar.
La documentación de un programa puede ser interna y
externa. La documentación interna es la contenida en líneas de comentarios. La documentación externa incluye análisis, diagramas de flujo y/o pseudocódigos, manuales de usuario con instrucciones para ejecutar el programa y para interpretar los resultados. REPRESENTACIÓN GRÁFICA DE ALGORITMOS REPRESENTACIÓN GRÁFICA DE ALGORITMOS BIBLIOGRAFÍA Joyanes Aguilar, L (2008). Fundamentos de programación. Algoritmos, estructura de datos y objetos (Cuarta Ed.). Madrid: McGRAW-HILL/INTERAMERICANA de España GRACIAS POR SU ATENCIÓN