Tema 2. Resolución de Problemas Objetivo: El alumno resolverá problemas mediante la especificación algorítmica.
2 Resolución de Problemas Definición, planteamiento y modelado del problema. Algoritmos para la resolución del problema. Definición del modelo computacional. Refinamiento del algoritmo paso a paso.
2 Resolución de Problemas Resolución de problemas El proceso de resolución de un problema con una computadora, conduce a la escritura de un programa y a su ejecución en la misma. El proceso de diseñar programas se puede considerar una serie de fases o pasos comunes que generalmente deben seguir todos los programadores.
2 Resolución de Problemas Las fases de resolución de un problema con computadora son: Análisis del problema Diseño del algoritmo Codificación Compilación y ejecución Verificación Depuración Mantenimiento Documentación
2 Resolución de Problemas Análisis del problema El problema se analiza teniendo presente la especificación de los requisitos dados por la persona que encarga el programa. Diseño del algoritmo Una vez analizado el problema, se diseña una solución que conducirá a un algoritmo que resuelva el problema
2 Resolución de Problemas Codificación (Implementación) La solución se escribe en la sintaxis del lenguaje de programación y se obtiene un programa. Ejecución, verificación y depuración El programa se ejecuta, se comprueba rigorosamente y se eliminan todos los errores que puedan aparecer.
2 Resolución de Problemas Mantenimiento El programa se actualiza y modifica, cada vez que sea necesario, de modo que se cumplan todas las necesidades de cambio. Documentación Escritura de las diferentes fases del ciclo de vida del software, esencialmente el análisis, diseño y codificación, unidos manuales de usuario y de referencia, así como normas para el mantenimiento.
2 Resolución de Problemas Análisis del problema Esta fase requiere de una clara definición, donde se contemple exactamente lo que debe hacer el programa y el resultado o solución deseada. Se precisan especificaciones detalladas de entrada y salida.
2 Resolución de Problemas instrucciones que toman datos de un dispositivo o periférico externo depositándolos después en memoria principal Instrucciones que toman los resultados depositados en memoria principal una vez procesados los datos de entrada SALIDA DE DATOS ENTRADA DE DATOS Proceso Instrucciones encargadas de procesar la información
2 Resolución de Problemas El problema de los regalos de Arcadio Arcadio Úrsula
2 Resolución de Problemas Para exponer puntualmente el problema de Arcadio, comenzamos por identificar los datos con los que trabajaremos. Entradas: Una cantidad de dinero inicial de mil pesos. Un conjunto de regalos posibles, S= {pulsera, dije, aretes}. Debido a la recomendación de Diana, utilizamos el conjunto S1 = {pulsera, dije, aretes, CD, DVD}.
2 Resolución de Problemas Entradas: Cada regalo posible de S1 tiene un precio en pesos y un valor emocional distinto para Úrsula. La cuestión entonces consiste en procurar una adquisición óptima; elegir objetos cuyo costo sea accesible y el aprecio por parte de Úrsula sea considerable. Así, los regalos poseen un valor emocional para Úrsula que se puede expresar como un valor numérico entre 0 (no le gusta) y 10 (le encanta).
2 Resolución de Problemas Entradas: Supongamos que los valores están dados en la siguiente tabla: Una vez decidida la entrada al problema, podemos pensar en lo que deseamos obtener como salida.
2 Resolución de Problemas Salida: Uno o más regalos para Úrsula. Es decir, un subconjunto T de S1 (o de S). Quizá con lo que sobre de los mil pesos Arcadio pueda comprarse algo para él…
2 Resolución de Problemas Salida: Arcadio debe aclarar qué opción es la más conveniente para el regalo de Úrsula: Comprarle la mayor cantidad de regalos posible Evitar a toda costa comprarle algo que un ex novio le obsequió en el pasado Comprarle un solo regalo que le guste mucho Mostrarle, a través de su elección, algo acerca de su personalidad y sensibilidad Asegurarse de que le sobre dinero para comprarse algo él mismo. Cada una de estas posibilidades implica un problema distinto
2 Resolución de Problemas Relación entrada/salida: Digamos que el problema de Arcadio está dado por lo que se plantea a continuación. Los regalos elegidos, es decir, los del conjunto T, no deben costar más de mil pesos en total. Además, no debe existir otra elección de regalos que coincida con esta característica y que tenga un valor emocional total mayor. Es decir, los regalos elegidos deben tener el mayor valor emocional posible y costar máximo mil pesos.
2 Resolución de Problemas Posibles soluciones Regalos Valor monetario Valor emocional
2 Resolución de Problemas Posibles soluciones Regalos Valor monetario Valor emocional Pulsera, DVD $900 9 Aretes, CD Aretes, CD, DVD $1000 10 Dije, CD, DVD 15 Dije, Aretes, DVD $800 16
2 Resolución de Problemas Es importante notar que para resolver el problema debemos concentrarnos en su especificación; es decir, en términos de entrada, salida y relación entrada-salida, y descartar cualquier cosa que nos distraiga de nuestro objetivo. Se trata de que encontremos una salida que satisfaga los requerimientos de la relación entrada/salida. Quizá si Arcadio le hubiera preguntado a Úrsula qué regalo le gustaría, ella le hubiera explicado que le acababan de regalar un dije y que ya no quería otro. Si éste hubiera sido el caso, los valores emocionales de entrada al problema serían incorrectos. No es que la solución fuera incorrecta, lo que no era correcto es la especificación del problema.
2 Resolución de Problemas Para poder identificar y definir bien un problema es conveniente responder a las siguientes preguntas: ¿Qué entradas se requieren? ¿Cuál es la salida deseada? ¿Qué método produce la salida deseada? Requisitos adicionales y restricciones a la solución
2 Resolución de Problemas Problema Se desea calcular el área y perímetro de un círculo. Entradas: Salidas: Restricciones: Proceso:
2 Resolución de Problemas Problema Se desea calcular el área y perímetro de un polígono regular. Entradas: Salidas: Proceso:
2 Resolución de Problemas Problema Se desea obtener el valor máximo y mínimo de un conjunto de 100 números. Entradas: Salidas: Restricciones: Proceso:
2 Resolución de Problemas Problema Dada una cadena de texto se desea saber cuantas vocales y consonantes tiene. Entradas: Salidas: Restricciones: Proceso:
2 Resolución de Problemas Problema Dada una lista de nombres se desea ordenarlos alfabéticamente. Entradas: Salidas: Restricciones: Proceso: