07/04/2015 Objetivos ▪ Conocer un enfoque amplio para encarar la resolución de problemas en general. ▪ Prepararse para situaciones relacionadas a la resolución de problemas de programación de computadoras. • Enfrentarse con situaciones que presenten distinto grado de dificultad. • Desarrollar la habilidad o destreza para proponer soluciones a determinados problemas. 2 ¿Cómo encarar los problemas? ¿Cómo encarar los problemas? Método descripto por el lógico-matemático G. Polya ¿Se puede aprender a pensar acerca de cómo resolver un problema en general? NO existe un enfoque o método único y bien definido para alcanzar soluciones a cualquier problema. SI se pueden plantear sugerencias o lineamientos que pueden ser de utilidad cuando analizamos un problema y proponemos posibles soluciones. 3 Conjunto de preguntas, cuyas contestaciones pueden ir abriendo caminos hacia la solución final. Cuatro pasos: • ENTENDER EL PROBLEMA • CONCEBIR UN PLAN • EJECUTAR EL PLAN • MIRAR ATRÁS Cabe aclarar que no siempre se van a poder responder todas las preguntas de cada paso. Éstas son sólo una guía y pueden utilizarse dependiendo del problema 4 considerado. 07/04/2015 ¿Cómo encarar los problemas? ¿Cómo encarar los problemas? ENTENDER EL PROBLEMA CONCEBIR UN PLAN - ¿Entiendes todo lo que dice? - ¿Recuerdas algún problema/caso semejante? - ¿Puedes replantear el problema en tus propias palabras? - ¿Puedes dividir el problema en partes? - ¿Distingues cuáles son los datos? ¿Qué nos dan? ¿Qué tenemos? - Es muy abstracto, ¿y probando con un caso particular? - ¿Sabes a qué quieres llegar? ¿Qué nos piden? ¿Qué buscamos? - ¿Puedes dibujarlo o introducir una notación adecuada? - ¿Y resolver algo más fácil, cercano al problema? ¿Y bajo otros puntos de vista? - Y si quitas o añades datos, ¿cómo funcionaría? - ¿Hay suficiente información? ¿Hay restricciones? - ¿Hay información extraña, redundante o contradictoria? - ¿Es este problema similar a algún otro que hayas resuelto antes? 5 ¿Cómo encarar los problemas? 6 ¿Cómo encarar los problemas? CONCEBIR UN PLAN EJECUTAR EL PLAN - ¿Puedes usar alguna de las siguientes estrategias? (técnica o conjunto de actividades destinadas a conseguir un objetivo) - Implementar la o las estrategias que se escogieron hasta solucionar completamente el problema o hasta que la misma acción sugiera tomar un nuevo curso. • Ensayo y Error (Conjeturar y probar la conjetura). • Usar una variable. • Identificar sub-tareas. • Buscar un patrón. • Hacer una lista. • Resolver un problema similar más simple o equivalente. • Hacer una figura. • Hacer un diagrama. • • • • • • Usar las propiedades de los números. Trabajar hacia atrás. Usar casos. Resolver una ecuación. Buscar una fórmula. Usar un modelo. 7 - Dedicar un tiempo razonable para resolver el problema. En caso de no poder resolverlo, se puede solicitar una sugerencia o, muchas veces, se puede apartar del problema por un momento tratando de clarificar ideas. - No se debe considerar un fracaso tener que volver a empezar. Suele suceder que un comienzo fresco o una nueva estrategia conducen al éxito. 8 07/04/2015 ¿Cómo encarar los problemas? ¿Cómo encarar los problemas? MIRAR ATRÁS Ejemplo: - ¿Es tu solución correcta? ¿Tu respuesta satisface lo establecido en el problema? En un cumpleaños, un joven debe amarrar unos globos en lo alto de una pared de 4,33 metros de altura ¿Cuál debe ser la longitud de la escalera que el joven debe colocar de tal manera que forme un ángulo de 60° con el piso? - ¿Adviertes una solución más sencilla? - ¿Puedes ver cómo extender tu solución a un caso general? La buena utilización de este método obliga a un entrenamiento constante para llegar a adquirir una actitud mental ágil y capaz. Es un método general y tiene aplicaciones incluso 9 cotidianas. ¿Cómo encarar los problemas? 10 ¿Cómo encarar los problemas? En un cumpleaños, un joven debe amarrar unos globos en lo alto de una pared de 4,33 metros de altura ¿Cuál debe ser la longitud de la escalera que el joven debe colocar de tal manera que forme un ángulo de 60° con el piso? En un cumpleaños, un joven debe amarrar unos globos en lo alto de una pared de 4,33 metros de altura ¿Cuál debe ser la longitud de la escalera que el joven debe colocar de tal manera que forme un ángulo de 60° con el piso? Paso 1: ENTENDER EL PROBLEMA Paso 1: ENTENDER EL PROBLEMA ¿Entiendes todo lo que dice? ¿Puedes replantear el problema? ¿Distingues cuáles son los datos? ¿Sabes a que quieres llegar? A encontrar la longitud de la escalera. ¿Hay suficiente información? Suponemos que Si. La altura de la pared es de 4,33 m. ¿Hay información extraña, redundante o contradictoria? No. El ángulo que forma la escalera con el piso es de 60° ¿Este problema es similar a otro que hayas hecho? Depende de la experiencia de cada uno. 11 12 07/04/2015 ¿Cómo encarar los problemas? ¿Cómo encarar los problemas? En un cumpleaños, un joven debe amarrar unos globos en lo alto de una pared de 4,33 metros de altura ¿Cuál debe ser la longitud de la escalera que el joven debe colocar de tal manera que forme un ángulo de 60° con el piso? En un cumpleaños, un joven debe amarrar unos globos en lo alto de una pared de 4,33 metros de altura ¿Cuál debe ser la longitud de la escalera que el joven debe colocar de tal manera que forme un ángulo de 60° con el piso? Paso 2: CONCEBIR UN PLAN Paso 2: CONCEBIR UN PLAN ¿Puedes usar alguna de las siguientes estrategias? ¿Puedes usar alguna de las siguientes estrategias? Usar una variable Hacer una figura e = longitud de la escalera p=4,33m 60° 13 ¿Cómo encarar los problemas? 14 ¿Cómo encarar los problemas? En un cumpleaños, un joven debe amarrar unos globos en lo alto de una pared de 4,33 metros de altura ¿Cuál debe ser la longitud de la escalera que el joven debe colocar de tal manera que forme un ángulo de 60° con el piso? En un cumpleaños, un joven debe amarrar unos globos en lo alto de una pared de 4,33 metros de altura ¿Cuál debe ser la longitud de la escalera que el joven debe colocar de tal manera que forme un ángulo de 60° con el piso? Paso 2: CONCEBIR UN PLAN Paso 3: EJECUTAR EL PLAN ¿Hay alguna razón trigonométrica que pueda usar para resolver el problema? Usaremos la siguiente razón trigonométrica: sen = cat. opuesto / hipotenusa ya que involucra todos los datos del problema planteado p=4,33m 15 60° sen = cat. opuesto hipotenusa sen 60° = p e sen 60° = 4,33 e e = 4,33 sen 60° e ≈ 5 m. p=4,33m 16 60° 07/04/2015 ¿Cómo encarar los problemas? ¿Cómo encarar los problemas? Resumen En un cumpleaños, un joven debe amarrar unos globos en lo alto de una pared de 4,33 metros de altura ¿Cuál debe ser la longitud de la escalera que el joven debe colocar de tal manera que forme un ángulo de 60° con el piso? Pautas útiles que pueden ayudarnos a enfrentar un problema: Paso 4: MIRAR ATRÁS ¿Es tu solución correcta? ¿Tu respuesta satisface lo establecido en el problema? Encontremos el ángulo ahora sen La búsqueda de la solución de un problema es una tarea difícil de sistematizar. Cada problema puede presentarse en forma aparentemente aislada y frecuentemente no sabemos cómo encararlo. ▪ Establecer el problema en forma clara y entenderlo completamente. ▪ Clarificar cualquier ambigüedad que presente el enunciado del problema. ▪ Definir claramente qué datos se tienen y qué se está buscando. = 4,33 / 5 ▪ Especificar con precisión todas las restricciones o condiciones que debe satisfacer la solución. = sen-1 (4,33/5) ≈ 60° 17 ¿Cómo encarar los problemas? 18 Abstracción Resumen ▪ Explicitar toda información implícita en el planteo que pueda resultar útil. Problema representación adecuada para el problema que descarte la información superflua y rescate aquélla que resulte relevante Enunciado ▪ Encontrar una representación adecuada de la información disponible. Principal dificultad incapacidad para utilizar convenientemente la información provista ▪ Retomar el enunciado original ante un callejón sin salida. Estas pautas no deben seguirse necesariamente en el orden expuesto. Muchas tareas se repiten y a menudo se relee el enunciado con mayor concentración, focalizando la atención en algún aspecto que tal vez resultó inadvertido en un primer momento. 19 información irrelevante, redundante o implícita La técnica para encontrar un planteo más conciso del problema teniendo en cuenta sólo los aspectos relevantes o importantes ABSTRACCIÓN Objetivo construir una simplificación de la realidad que rescate únicamente la información relevante para 20 hallar una solución del problema. 07/04/2015 Abstracción Resolución de problemas y computadoras Etapas: Abstracción funcional: a las operaciones necesarias. Identifica sub-problemas menores en la solución de un problema completo. Enunciado Abstracción de datos: a la representación de los datos necesarios. ▪ COMPRENSIÓN DEL PROBLEMA. ▪ ELECCIÓN DE UN MÉTODO O PROCEDIMIENTO PARA HALLAR LA SOLUCIÓN – – – – Datos de entrada (qué se dispone) Proceso (tratamiento que ha de realizarse con los datos de entrada) Datos de salida (información de salida deseada) Restricciones y/o condiciones. Las restricciones son supuestos que deben cumplirse sobre los datos de entrada. Las condiciones pueden ser verificadas dentro del proceso. ▪ CODIFICACIÓN (lenguaje de programación) ▪ EJECUCIÓN (obtener la solución del problema, datos de prueba) 21 Resolución de problemas y computadoras 22 Resolución de problemas y computadoras Un procesador es toda entidad capaz de comprender y ejecutar las Un algoritmo es una secuencia finita y ordenada de acciones primitivas que pueden ser ejecutadas por un procesador y que lleva a la solución de un problema determinado. acciones elementales de un algoritmo. Características: El ambiente está constituido por el conjunto de todos los recursos ▪ Punto particular de inicio. necesarios para la ejecución de un algoritmo. ▪ Orden claro de realización de cada paso. Una acción es un evento que modifica al ambiente. ▪ Definido, es decir, si se ejecutan varias veces las mismas acciones con los mismos datos, se deben obtener siempre los mismos resultados. No debe permitir dobles interpretaciones. Un enunciado describe un determinado problema a resolver. Una acción primitiva puede ser ejecutada sin información adicional por un procesador dado. ▪ Finito, es decir, debe terminar en algún momento y tener un número determinado de pasos. 23 ▪ Independiente del lenguaje de programación. 24 07/04/2015 Resolución de problemas y computadoras Resolución de problemas y computadoras Diferencia entre programa y algoritmo Un algoritmo es el planteamiento general de la solución, mientras el programa es la solución misma y contiene todos sus detalles en forma ejecutable. A un mismo algoritmo le pueden corresponder distintos programas. Comprensión Diseño Codificación PROBLEMA ALGORITMO PROGRAMA Un programa es una secuencia finita y ordenada de instrucciones, escritas en un lenguaje de programación, que pueden ser ejecutadas por una computadora y que lleva a la solución de un problema determinado. 25 Resolución de problemas y computadoras El procesador tiene la capacidad de interpretar cada una de las 26 Resolución de problemas y computadoras Refinamientos Sucesivos acciones descriptas, en cuyo caso estas acciones constituyen E0 Versión 1 acciones primitivas. t1 E1 T (trabajo completo) t2 E2 t3 E3 tn Ef Una acción no primitiva debe ser descompuesta en acciones Versión final primitivas para un procesador dado. t1.1 t1.2 t1.3 Descomposición de t1 en una secuencia de 3 acciones Existen distintas técnicas para descomponer una acción en acciones primitivas. Un método es el denominado Refinamientos Sucesivos, Diseño descendente o Diseño top-down. 27 Dado un conjunto de acciones no primitivas T, tal que, transforma el ambiente desde el estado inicial E0 hasta un estado final Ef se puede encontrar una descomposición de T que constituye una secuencia de acciones primitivas 28 comprensible por un procesador. 07/04/2015 Ejemplo 1 Ejemplo 1 Enunciado: Realizar una llamada a un contacto almacenado en el celular. Procesador: Una persona capaz de entender y ejecutar las acciones primitivas. Acciones Primitivas: • Desbloquear el celular. • Finalizar la llamada. • Abrir la agenda de contactos. • Presionar el botón de iniciar llamada. • Seleccionar el contacto deseado. • Comunicarse con el contacto. Datos de entrada: ? Datos de salida: ? Restricciones: ? Condiciones: ? Algoritmo: ? 29 Ejemplo 1 Enunciado: Realizar una llamada a un contacto almacenado en el celular. Acciones Primitivas: • Desbloquear el celular. • Finalizar la llamada. • Abrir la agenda de contactos. • Presionar el botón de iniciar llamada. • Seleccionar el contacto deseado. • Comunicarse con el contacto. Datos de entrada: Teléfono celular y nombre del contacto. Datos de salida: Mensaje informando que se finalizó la llamada. Enunciado: Realizar una llamada a un contacto almacenado en el celular. Procesador: Una persona capaz de entender y ejecutar las acciones primitivas. Acciones Primitivas: • Desbloquear el celular. • Finalizar la llamada. • Abrir la agenda de contactos. • Presionar el botón de iniciar llamada. • Seleccionar el contacto deseado. • Comunicarse con el contacto. Datos de entrada: Teléfono celular y nombre del contacto. Datos de salida: Mensaje informando que se finalizó la llamada. Restricciones: • El celular tenga señal • El celular tenga batería • El celular tenga crédito Condiciones: No hay. 30 Ejemplo 2 Algoritmo: Versión 1: t1. Desbloquear el celular. t2. Realizar la llamada al contacto deseado. t3. Finalizar la llamada. Versión 2 (final): t1. Desbloquear el celular. t2.1. Abrir la agenda de contactos. t2.2. Seleccionar el contacto deseado. t2.3. Presionar el botón de iniciar llamada. t2.4. Comunicarse con el contacto. t3. Finalizar la llamada. Prueba? 31 Enunciado: Calcular el sueldo neto de un trabajador conociendo el número de horas trabajadas, la tarifa horaria y la tasa de impuestos. Procesador: Una persona capaz de entender y ejecutar las acciones primitivas. Acciones Primitivas: • Mostrar el sueldo neto del trabajador (SueldoNeto) • Solicitar el número de horas trabajadas (h) • SueldoBruto = h * t • Solicitar la tarifa horaria (t) • Impuestos = SueldoBruto * i • Solicitar la tasa de impuestos (i) • SueldoNeto = SueldoBruto – Impuestos Datos de entrada: ? Datos de salida: ? Restricciones: ? Condiciones: ? Algoritmo: ? 32 07/04/2015 Ejemplo 2 Ejemplo 2 Enunciado: Calcular el sueldo neto de un trabajador conociendo el número de horas trabajadas, la tarifa horaria y la tasa de impuestos. Procesador: Una persona capaz de entender y ejecutar las acciones primitivas. Acciones Primitivas: • Mostrar el sueldo neto del trabajador (SueldoNeto) • Solicitar el número de horas trabajadas (h) • SueldoBruto = h * t • Solicitar la tarifa horaria (t) • Impuestos = SueldoBruto * i • Solicitar la tasa de impuestos (i) • SueldoNeto = SueldoBruto – Impuestos Enunciado: Calcular el sueldo neto de un trabajador conociendo el número de horas trabajadas, la tarifa horaria y la tasa de impuestos. Acciones Primitivas: • Mostrar el sueldo neto del trabajador (SueldoNeto) • Solicitar el número de horas trabajadas (h) • SueldoBruto = h * t • Solicitar la tarifa horaria (t) • Impuestos = SueldoBruto * i • Solicitar la tasa de impuestos (i) • SueldoNeto = SueldoBruto – Impuestos Datos de entrada: Calculadora, número de horas trabajadas, tarifa horaria, impuestos. Datos de salida: Sueldo neto de un trabajador. Datos de entrada: Calculadora, número de horas trabajadas, tarifa horaria, impuestos. Datos de salida: Sueldo neto de un trabajador. Restricciones: Los datos de entrada no deben ser negativos. Condiciones: No hay. 33 Ejemplo 3 Tomar una carta del mazo. Dejar carta en la pila de comodines. Persona. Mazo de cartas españolas. Hay cartas en el mazo. Descartar. Pila con comodines. Tomar el mazo de cartas. Ir a la tarea ti. La carta es un comodín. Versión 2 (final): t1.1. Solicitar el número de horas trabajadas (h). t1.2. Solicitar la tarifa horaria (t) t1.3. Solicitar la tasa de impuestos (i) t2.1. SueldoBruto = h * t t2.2. Impuestos = SueldoBruto * i t2.3. SueldoNeto = SueldoBruto – Impuestos t3. Mostrar el sueldo neto del trabajador (SueldoNeto) 34 Ejemplo 3 Enunciado: Extraer los dos comodines de un mazo de cartas españolas asumiendo que el mazo está completo. Ítem Algoritmo: Versión 1: t1. Solicitar los datos. t2. Realizar los cálculos necesarios. t3. Mostrar el sueldo neto del trabajador (SueldoNeto). Procesador Datos de entrada Datos de salida Acciones primitivas Condiciones x x x x x x x x x x 35 Enunciado: Extraer los dos comodines de un mazo de cartas españolas. Acciones Primitivas: • Tomar una carta del mazo. • Dejar carta en la pila de comodines. • Descartar. • Tomar el mazo de cartas. • Ir a la tarea ti. Datos de entrada: Mazo de cartas españolas Datos de salida: Pila con comodines. Restricciones: El mazo debe estar completo. Condiciones: • Hay cartas en el mazo. • La carta es un comodín. Algoritmo: Versión 1: t1. Tomar el mazo de cartas. t2. Tomar una a una las cartas y separar los comodines del mazo. Versión 2 (final): t1. Tomar el mazo de cartas. t2.1. Tomar una carta del mazo. t2.2. Si la carta es un comodín, dejar carta en la pila de comodines. t2.3. Si la carta no es un comodín, descartar. t2.4. Si hay cartas en el mazo, ir a la tarea t2.1 36 07/04/2015 ¿Dudas? 37
© Copyright 2024