PRÁCTICO N o 3 Parte 1: Resolución de Problemas Ejercicio 1: a) A continuación se muestra el enunciado de un problema y el algoritmo que lo resuelve. Analice la solución propuesta e indique si cumple con las características que debe tener un algoritmo. Preparar una taza de leche con chocolate Algoritmo: 1. Tomar una taza vacía 2. Llenar la taza con leche 3. Poner la taza en el microondas 4. Establecer el tiempo de un minuto con 30 segundos 5. Encender el microondas 6. Esperar que el microondas termine 7. Retirar la taza del microondas 8. Tomar el cacao 9. Tomar una cucharita 9. Echar 2 cucharadas de cacao en la taza 10.Tomar azucarera 11.Echar 2 cucharadas de azúcar en la taza 12.Revolver la preparación con la cuchara b) Especifique procesador y ambiente del algoritmo. Ejercicio 2: a) A continuación se muestra el enunciado de un problema y el algoritmo que lo resuelve. Analice las soluciones propuestas e indique si cumplen con las características que debe tener un algoritmo. Colocar 4 litros de agua en un balde utilizando un vaso de 200 cc. (Se supone que estoy al lado de una canilla) a) Algoritmo: 1. Tomar el vaso 2. Repetir 20 veces 3. Abrir la canilla 4. Llenar el vaso de agua 5. Cerrar la canilla 6. Vaciar el vaso en el balde 7. Dejar el vaso b) Algoritmo: 1. Tomar el vaso 2. Repetir 3. Abrir la canilla 4. Llenar el vaso de agua 5. Cerrar la canilla 6. Vaciar el vaso en el balde 7. Dejar el vaso Nota: la acción no primitiva Dejar el vaso no pertenece a la repetición, todas las acciones que tienen sangría o indentación (comienzan más a la derecha), son las acciones que se ejecutan dentro de la repetición. b) Especifique procesador y ambiente del algoritmo correcto. Práctico 3: Res. de Problemas - Ref. Sucesivo Página 1 Dpto. de Informática
Ejercicio 3: Dado el problema: Usted sabe que en alguno de los canales de televisión se está transmitiendo la película Jumper y la quiere ver. La busca, cuando la encuentra, la mira y luego de terminar de ver la película apaga el televisor. A continuación se presentan dos posibles soluciones al problema, analícelas y luego conteste: Procesador: persona Ambiente: televisor Solución 1 Solución 2 1. Encender el televisor 1. Encender el televisor 2. Si (el canal emite Jumper) 2. Mientras (el canal no emite Jumper) 3. Ver la película 3. Cambiar de canal 4. Apagar el televisor 4. Repetir desde (2) 5. Ver la película 6. Apagar el televisor 1. Funcionan de la misma manera ambas soluciones? Si se considera que no, qué diferencia existe entre ambas? 2. Ambas soluciones resuelven el problema? Justifique su respuesta. Ejercicio 4: Se necesita un algoritmo que resuelva: Llenar una zanja con arena utilizando una pala. A continuación se dan dos soluciones posibles, analícelas y conteste: Procesador: persona Ambiente: pala, zanja, arena Solución 1 Solución 2 1. Tomar la pala 1. Tomar la pala 2. Ubicarse frente a la zanja 2. Ubicarse frente a la zanja 3. Mientras (la zanja esté vacía) 3. Repetir 20 veces 4. Agregar una palada de arena 4. Agregar una palada de arena 5. Repetir 5. Dejar la pala 6. Dejar la pala 1. Considera que ambas soluciones son correctas? Si responde que no, diga cuál no lo es y explique por qué. 2. Proponer otro algoritmo que solucione el problema propuesto. Práctico 3: Res. de Problemas - Ref. Sucesivo Página 2 Dpto. de Informática
Parte 2: Resolución de Problemas. Análisis de Enunciados y Refinamiento Sucesivo Nota: Para resolver cada uno de los problemas planteados aplicar el modelo propuesto por Polya expuesto en la lectura recomendada. Ejercicio 1: Dado el siguiente enunciado: Calcular el área de la zona sombreada. 1. Qué datos se pueden obtener del análisis del enunciado? 2. Qué cálculos son necesarios realizar para resolver lo pedido? Enumerarlos detallando el orden en que deberían realizarse. 3. Cuál es el valor del área sombreada? 4. Generalizar la fórmula obtenida para cualquier valor de radio. Ejercicio 2: Se pide calcular la suma de todos los números pares entre 2 y 100. Para concebir un plan de solución responda las siguientes preguntas orientativas. a) Se entiende a qué hay que llegar? Cuál es el objetivo? b) Se pueden distinguir datos? Cuáles? Hay datos desechables? c) Se debe iniciar la solución con algún valor específico? Cuál? d) Exprese un esquema (modelo) de los cálculos que se deberían realizar para llegar al resultado. Ejercicio 3: Dada la siguiente solución expresada en Lenguaje de Problema: Problema: Cambiar una lámpara quemada. Procesador: Persona. Ambiente: escalera, lámpara nueva, lámpara quemada. Práctico 3: Res. de Problemas - Ref. Sucesivo Página 3 Dpto. de Informática
Version 2: t1.1: Tomar una lámpara nueva de la misma potencia que la quemada. t1.2: Chequear que la perilla de la luz esté en posición apagado. t1.3: Colocar una escalera para alcanzar el porta lámpara. t2.1: Subir por la escalera hasta alcanzar la lámpara quemada. t2.2: Sacar la lámpara quemada. t2.3: Colocar la nueva lámpara. t3.1: Bajar de la escalera. t3.2: Encender la luz. a) Cuáles serían las tareas 1, 2 y 3 en una versión 1? b) Desarrollar la versión 3, desagregando las tareas t2.2 y t2.3. Ejercicio 4: Dada la siguiente solución expresada en Lenguaje de Problema: Problema:Piense un número natural menor igual que 20 y luego calcule las 10 primeras potencias de ese número. Procesador: Persona. Ambiente: Papel, lápiz, goma de borrar. Version 1: t1: Pensar un número cualquiera, controlando que sea menor o igual que 20. t2: Calcular las 10 primeras potencias del número pensado. a) Completar el refinamiento desarrollando las versión2y3. Ejercicio 5: Se necesita un algoritmo que resuelva el siguiente problema: Se tienen 2 vasos iguales, llenos de jugo uno y agua el otro. Se desea tomar de cada uno un sorbo. La determinación de cuál vaso tomar se hará arrojando unamoneda.el proceso termina cuando se vacía el primero de los 2 vasos. Version 1: t1: Llenar los vasos. t2: Tomar jugo o agua, determinándolo con una moneda. t3: Informar de qué vasotomémás. Práctico 3: Res. de Problemas - Ref. Sucesivo Página 4 Dpto. de Informática
Terminar de diseñar el algoritmo a partir de la versión 1, realizando 3 niveles de refinamiento para llegar al algoritmo final. Ejercicio 6: Dadas las siguientes acciones primitivas: * Guardar el < nro> en < nombre> * Tomar el valor de < nombre> * Guardar el resultado en < nombre> *Sumar * Mostrar resultado en < nombre> Donde nro es cualquier natural y nombre tiene la capacidad de guardar un valor. Utilizando Refinamiento Sucesivo, diseñar algoritmos repetitivos que calculen y muestren: a) Escribir el algoritmo modelizado en el Ejercicio 2 (Parte 2). b) La suma de todos los números impares entre 1 y 51. c) La suma de los 25 primeros números desde 15. Ejercicio 7: Utilizando Refinamiento Sucesivo lograr 3 niveles de refinamiento para llegar a los algoritmos finales que resuelvan los siguiente problemas: a) Suponga que un usuario le informa el tiempo, expresado en minutos, que utiliza un proceso para obtener su resultado. Diseñar un algoritmo que permita calcular los días, horas y minutos que representan el tiempo informado. b) Dado un mazo de cartas españolas, diseñe un algoritmo que permita sacar el tope de la pila y armar dos nuevas pilas, una pila con las cartas mayores o iguales que el tope y otra con las cartas que son menores. Las cartas de la pila original pueden estar boca arriba o boca abajo. c) Dadas 3 longitudes, diseñar un algoritmo que permita determinar si forman un triángulo: equilátero, isóscelesoescaleno,onoformanuntriángulo (cada lado tiene que ser menor que la suma de los otros dos). Ejercicio 8: Se tiene la planilla de asistencia de la materia Resolución de Problemas y Algoritmos. Para cada alumno existente en dicha planilla, se desea saber el número total de asistencias a clase y también el porcentaje de asistencia. Se pide diseñar la solución al problema, utilizando al menos 2 niveles de refinamiento sucesivo, incluyendo la versión final. Especificar, además, el ambiente y el procesador considerados. Práctico 3: Res. de Problemas - Ref. Sucesivo Página 5 Dpto. de Informática
Ejercicios Complementarios Ejercicio 1: Diseñe el algoritmo que resuelva el siguiente problema, indicando el procesador y el ambiente correspondiente: Un señor entra en una taberna y pide cuatro litros de vino. Cómo se las ingenia el tabernero para medir cuatro litros exactos sabiendo que tiene sólo un barril de ocho litros de vino y dos cazos para medir, uno de tres y otro de cinco? Ejercicio 2: Diseñe el algoritmo que resuelva el siguiente problema, indicando el procesador y el ambiente correspondiente: Dado un número natural, determinar cuáles son sus divisores. Ejercicio 3: Calcular, mediante un algoritmo repetitivo y utilizando refinamiento sucesivo, la suma de los N primeros números naturales. Práctico 3: Res. de Problemas - Ref. Sucesivo Página 6 Dpto. de Informática