Cita:
Iniciado por NSD En estos casos, en vez de romperse la cabeza pensando algoritmos complicados, es mejor cambiar de enfoque y dividir al problema en dos partes: "QUE tiene que resolver" y "COMO tiene que resolverlo", en el paradigma funcional y lógico, el "COMO" lo resuelve la herramienta, mientras que tu solo tienes que definirle "QUE" es lo que hay que hacer.
Eso es lo que hago pero en el tipo de lenguaje que entiendo, en el que dices parece que se escribiera mucho menos sí (aunque para mí es más complicado). Yo describo la situación inicial, el objetivo y las acciones posibles, y pues "pido" que me diga con qué acción logro el objetivo, cómo logro el objetivo.
PD: Usar hielo simplemente debería solucionar el problema, alguna falla hay por ahí porque en la lista que pusiste dice también hielo y fuego, cuando habiendo usando hielo ya debería haberse solucionado.
--------------------------------------------------------------------------------
Bien, yo no hice los ejercicios aún, el tiempo que dediqué a esto (que por ahora no podrá ser mucho) fue sobre analizar qué tipos de problema hay. No creo que el ejercicio que debo sea tan complicado, pero es bastante diferente de lo que hacía y me ha costado entender en qué.
Aproximación de lo que serían "las variables de un problema":
- Qué elementos se analizan: Los de una función o lista, o más de una.
- Qué expresan los elementos: Acciones (entonces implica situación inicial) o respuestas o "nada".
- Complejidad de las condiciones.
- Hasta cuando se analiza.
- Qué respuestas se dan y en qué condiciones.
En los ejercicios que yo hacía:
Ejemplo: Tienes 1 litro debes tener 10, acciones disponibles: 1) Agregar 1 litro, 2) Agregar 2 litros.
- Los elementos que se analizan están en una
función (sencilla, algo como Act+1 partiendo de Act=1).
- Expresan
acciones (de aplicación sencilla como modificar una variable; la situación inicial también sencilla, bien definida).
- Las condiciones son
simples (por ejemplo Litros=>10, nada de "hallar el mayor resultado posible", ni "que haya X elementos en la lista que cumplan la condición").
- Se analiza hasta
encontrar alguna solución.
- Se da
una respuesta, cuando se cumple el objetivo que se pide. Si se requiere más de una acción se dicen todas las requeridas, pero en definitiva es una respuesta, en un caso.
En el ejercicio de aquí:
Averiguar todos los números comprendidos entre el 1 y el 100 de la serie de Fibonacci que son números primos.
- Los elementos que se analizan están en una
función (no muy complicada, pero para que sea sencilla, por lo que sé, requiere crear una variable que no es parte del problema).
- Expresan
nada.
- Las condiciones son
complejas (para averiguar si un número es primo, que yo sepa, no existe una única condición con la cual pueda expresarse, más bien hay que hacer divisiones y en lo posible sólo usando ciertos números, que conforman una lista que no se puede hacer a modo de función)
- Se analiza
cada elemento de la lista.
- La cuestión de la respuesta es similar, pero hay que
crear una lista de un modo que yo no hacía.
De hecho, como en las condiciones es como si se creara una lista, que será usada en muchos casos, entonces es como si el problema exigiera analizar una lista no simplemente una función (ver "-" 1ero).
Ambos problemas pueden expresarse con la idea de que se quiere pasar de una situación a otra y hay acciones posibles. En el 2ndo caso la situación sería "no tengo la lista de...", habría que pasar a tenerla, y las acciones posibles podrían ser, listas, o números que han de agregarse, pero más que problema para mí parece una duda que requiere una respuesta, lo de acciones parece marear la perdiz ¿no creen? Bueno pero yo intentaba ver al asunto como algo de acciones.
Tened un poco de más paciencia, lo siento.