introalg:taller09_soluciones
Diferencias
Muestra las diferencias entre dos versiones de la página.
Ambos lados, revisión anteriorRevisión previaPróxima revisión | Revisión previa | ||
introalg:taller09_soluciones [2009/06/01 13:39] – laura | introalg:taller09_soluciones [2018/08/10 03:03] (actual) – editor externo 127.0.0.1 | ||
---|---|---|---|
Línea 576: | Línea 576: | ||
</ | </ | ||
- | ==== ejercicios para seguir pensando y analizando problemas ==== | + | * Tenemos una lista de las conexiones por tren entre pares de ciudades, por ejemplo '' |
- | * ¿Cómo sería un programa para recomendar amigos en una red social tipo // | + | ==== ejercicios sobre la vida real 1/06/2009 ==== |
- | * Tenemos | + | Encontrarán |
+ | |||
+ | También damos una posible solución al problema de calcular el porcentaje de estudiantes que aprueban o promocionan la materia en la [[http:// | ||
+ | |||
+ | * Comprobar si podemos cocinar un determinado platillo dados los ingredientes necesarios para el platillo y los ingredientes que tenemos en la heladera. Se puede ampliar con los utensilios, | ||
+ | < | ||
+ | ingredientes(tortilla,[huevos, | ||
+ | ingredientes(papafrita, | ||
+ | ingredientes(huevofrito, | ||
+ | ingredientes(pizza, | ||
+ | ingredientes(asado, | ||
+ | ingredientes(crema, | ||
+ | |||
+ | tengo(sal). | ||
+ | tengo(azúcar). | ||
+ | tengo(pimienta). | ||
+ | tengo(canela). | ||
+ | tengo(huevos). | ||
+ | tengo(leche). | ||
+ | tengo(queso). | ||
+ | tengo(maicena). | ||
+ | |||
+ | puedoCocinar(Platillo) :- | ||
+ | | ||
+ | | ||
+ | |||
+ | tengoTodos([]). | ||
+ | tengoTodos([I|Ingredientes]) :- tengo(I) , tengoTodos(Ingredientes). | ||
+ | </ | ||
+ | |||
+ | * Crear un sistema de alertas que cuando se consume un insumo, chequea en la base de datos cuánta reserva queda de ese insumo y, si la reserva está por debajo de un mínimo, devuelve un mensaje diciendo que hay que comprar más de ese insumo. | ||
+ | < | ||
+ | queda(jeringas,8). | ||
+ | queda(vendas, | ||
+ | queda(curitas, | ||
+ | |||
+ | minimo(jeringas, | ||
+ | minimo(vendas, | ||
+ | minimo(curitas, | ||
+ | |||
+ | bajoMinimo(Insumo, | ||
+ | queda(Insumo, | ||
+ | minimo(Insumo, | ||
+ | (Reserva - Cantidad) =< Minimo . | ||
+ | </ | ||
+ | |||
+ | * Hacer un programa | ||
+ | < | ||
+ | mamifero(vaca). | ||
+ | mamifero(delfín). | ||
+ | mamifero(nutria). | ||
+ | acuatico(delfín). | ||
+ | acuatico(nutria). | ||
+ | pez(trucha). | ||
+ | pez(guppi). | ||
+ | viviparo(guppi). | ||
+ | |||
+ | terrestre(X) :- mamifero(X) , not(acuatico(X)). | ||
+ | acuatico(X) :- pez(X). | ||
+ | viviparo(X) :- mamifero(X). | ||
+ | oviparo(X) :- pez(X) , not(viviparo(X)). | ||
+ | </ | ||
+ | |||
+ | ==== ejercicios de recursividad clásicos 1/06/2009 ==== | ||
+ | |||
+ | El problema del máximo común divisor se soluciona muy fácilmente si por azar sabemos que hay una recetita maravillosa que dice así: dados dos números, si uno es divisor del otro, entonces ese será el máximo común divisor. Si no, se resta el número menor al mayor y volvemos a comprobar | ||
+ | < | ||
+ | mcd :: Int -> Int -> Int | ||
+ | mcd a b | mod a b == 0 = b | ||
+ | | mod b a == 0 = a | ||
+ | | otherwise | ||
+ | </ | ||
+ | |||
+ | El problema de las n reinas (perdón, no eran 9 :-} ). Está muy bien explicado en el [[http:// | ||
+ | |||
+ | El problema de misioneros y caníbales está bien explicado como caso particular de un problema de búsqueda en estas [[https:// |
introalg/taller09_soluciones.1243863548.txt.gz · Última modificación: 2018/08/10 03:03 (editor externo)