Algoritmos I Lenguaje de Programación Ingº JORGE AUGUSTO MARTEL TORRES Ingenierías CONTENIDO • Introducción • • Algoritmo Lenguaje de Programación • Resolución de Problemas con la PC – Análisis del Problema, – Diseño del Algoritmo, – Resolución del Algoritmo UNTELS Jorge Augusto Martel Torres 2 ALGORITMO • • • Conjunto de Instrucciones que especifican la secuencia de operaciones a realizar, pero en orden lógico para resolver una clase de problema (o sistema específico). Es un método, fórmula para resolver un problema Son más importantes que los LP o las PC CARACTERISTICAS – Preciso.- Tiene orden de realización de cada paso. – Definido.- Debe obtener resultados – Finito.- Debe tener un número finito de pasos, se debe terminar en algún momento PARTES – Entrada – Proceso – Salida UNTELS Jorge Augusto Martel Torres 3 LENGUAJE DE PROGRAMACION • Es el conjunto limitado de palabras y de símbolos que representan procedimientos, cálculos, decisiones y otras operaciones que pueden ejecutar con un ordenador • Es el conjunto de reglas conocidas por sintaxis, palabras y símbolos o instrucciones que se usa en la computadora por el LP • Es un medio para expresar un algoritmo TIPOS DE LP – Lenguaje Máquina. 00010001 11011112 – Lenguaje de Bajo Nivel. Add, Mov, – Lenguaje de Alto Nivel. { }, cin, cout, ; UNTELS Jorge Augusto Martel Torres 4 TIPOS DE LP DESARROLLADOR USUARIO BASIC, PASCAL C, C++ ASSEMBLER PROGRAMADOR ALTO NIVEL L.NIVEL INTERMEDIO L.BAJO NIVEL FASE DE TRADUCCION PROGRAMA FUENTE WRITE, READ CIN, COUT ADD, MOV, SUB INTERPRETACION O COMPILACION 00011100 L.MAQUINA UNTELS 00011100 Jorge Augusto Martel Torres PROGRAMA OBJETO 5 RESOLUCION DE PROBLEMAS CON LA PC ? FASES I. Análisis del Problema – Definición del Problema – Especificaciones de Entrada – Especificaciones de Salida II. Diseño o desarrollo del Algoritmo – Diseño descendente (Top-Down Design) – Refinamiento de pasos (Stepwise Refinement) – Usa Herramientas de Programación (PS. DF, D-NS) III. Resolución del Algoritmo con la PC – Codificación de Resolución del Algoritmo – Ejecución del Programa – Comprobación del Programa UNTELS Jorge Augusto Martel Torres 7 Fase I: Análisis del Problema • El Propósito es ayudar al programador para llegar a una cierta comprensión de la naturaleza del programa • El Problema necesita estar bien definido si se desea llegar a una solución satisfactoria • Para definir con precisión el problema se requiere que las especificaciones de I/O sean descritas con detalle UNTELS Jorge Augusto Martel Torres 8 • Es necesario la lectura del problema: – 1º Lectura, para obtener una idea del problema – 2º Lectura, para responder a las preguntas • ¿Que información debe proporcionar la resolución del problema? • ¿Que datos se necesita para resolver el problema? UNTELS Jorge Augusto Martel Torres 9 FASES DEL ANALISIS DEL PROBLEMA Que datos se necesitan para resolver el problema? ESPECIFICACIONES DE ENTRADA DE DATOS UNTELS Que información debe proporcionar la resolución del problema? PROBLEMA Jorge Augusto Martel Torres ESPECIFICACIONES DE SALIDA DE DATOS Regresar 10 Fase II: DISEÑO DEL ALGORITMO P R O B L E M A UNTELS • Usa el método divide y vencerás. – Los problemas complejos se pueden resolver eficazmente cuando se rompen en subproblemas que sean más fáciles de solucionar que el original. Y, esto puede continuar hasta disminuir la complejidad. Jorge Augusto Martel Torres 11 • Usa el diseño descendente (top-down design), teniendo como ventaja la solución modular del problema y por ende su solución es fácil. UNTELS Jorge Augusto Martel Torres 12 • Hace uso de niveles de refinamiento (stepwise refinement) antes de obtener un algoritmo claro, preciso y completo. UNTELS Jorge Augusto Martel Torres 13 • Utiliza herramientas de programación o de solución de problemas UNTELS Jorge Augusto Martel Torres 14 Técnicas de Diseño de Algoritmos P P ? R R O O B B L L E E P R O M B L E A M A M A UNTELS Jorge Augusto Martel Torres Regresar 15 Fase III: RESOLUCIÓN DEL PROBLEMA CON LA PC • Una vez que el algoritmo esta diseñado y representado gráficamente mediante una herramienta de programación, se debe pasar a la fase de resolución práctica del problema con la Computadora. UNTELS Jorge Augusto Martel Torres 16 • Se descompone en las siguiente subfaces: – Codificación del algoritmo usando mediante un programa usando un Lenguaje de Programación (Basic, C, Pascal, etc). – Ejecución del Programa – Comprobación del Programa UNTELS Jorge Augusto Martel Torres 17