ACTICA-4.TXT Ficheros. Modulos. ============================================================================ Durante la clase se desarrollarán soluciones para los 4 primeros, caso de que dé tiempo. El quinto es un ejercicio puntuable para realizar en casa, el código en CLIPS de dicho ejercicio debe ser envíado por e-mail a "fmartin@cs.us.es" antes del miércoles 27 de Marzo con el "Subject" "Ejercicio-puntuable-2". No se admitirá ningún trabajo cuya fecha de envío sea posterior a la del día 27. El trabajo elaborado en esta sesión debe ser almacenado en un fichero con el nombre "PRACTICA-4.CLP" y ha de ser envíado por e-mail a "fmartin@cs.us.es" al final de la misma. No se admitirá ningún trabajo cuya fecha de envío sea posterior a la del día de hoy. El mensaje ha de llevar por "Subject" el nombre del fichero indicado antes. La corrección de los trabajos será comentada en la próxima sesión de prácticas. ***************************************************************************** * PROBLEMA 1: * ***************************************************************************** Consideremos los conjuntos representados usando el siguiente patrón de hecho: (deftemplate conjunto (slot nombre (type SYMBOL)) (multislot elementos (type SYMBOL) (default ?DERIVE))) Escribir una o más reglas en CLIPS para: - calcular la unión de dos conjuntos dados en un hecho de la forma (union ). - calcular la intersección de dos conjuntos dados en un hecho de la forma (interseccion ). ***************************************************************************** * PROBLEMA 2: * ***************************************************************************** Escribir un programa que indique si cierta presión de aceite es adecuada o no. Se considera que la presión de aceite es adecuada si es mayor o igual a 60, y no es adecuada si el valor es menor. Los datos son proporcionados en el fichero "aceite.dat" y la salida debe almacenarse en el fichero "aceite.exp". Cargar el programa en CLIPS y evaluarlo cuando el fichero "aceite.dat" contiene los siguientes datos: 71 64 60 56 58 61 ***************************************************************************** * PROBLEMA 3: * ***************************************************************************** Escribir un programa que indique si cierta presión de aceite es adecuada o no. Se considera que la presión de aceite es adecuada si es mayor o igual a 60, y no es adecuada si el valor es menor. Los datos son proporcionados en el fichero "aceite.dat" y la salida debe almacenarse en el fichero "aceite.exp". Cargar el programa en CLIPS y evaluarlo cuando el fichero "aceite.dat" contiene los siguientes datos: 71 64 60 56 58 61 Utilizar módulos para controlar la ejecución del programa. ***************************************************************************** * PROBLEMA 4: * ***************************************************************************** El algorimo de ordenación de la burbuja actua como sigue: 1. Si existen elementos consecutivos del vector de datos que no se encuentren en el orden deseado, 1.1. considerar dos elementos en dicha situación, permutarlos y volver al punto 1.; 1.2. en caso contrario el algoritmo ha terminado. Cargar el programa en CLIPS y ejecutarlo para ordenar la siguiente lista de números: 20 19 18 17 16 15 14 13 12 10 9 8 7 6 5 4 3 2 1 0 -1 -2 -3 -4 -5 -6 -7 -8 -9 -10. Examinar el número de reglas ejecutadas con (watch statistics). ***************************************************************************** * PROBLEMA 5: * ***************************************************************************** ************************************************************ * Este es un ejercicio puntuable para realizar en casa, el * * código en CLIPS de dicho ejercicio debe ser envíado * * por e-mail a "fmartin@cs.us.es" antes del miércoles 27 * * de Marzo con el "Subject" "Ejercicio-puntuable-2". No se * * admitirá ningún trabajo cuya fecha de envío sea * * posterior a la del día 27. * ************************************************************ Juego Nim modificado: El objetivo del juego es obligar al jugador contrario a coger la última pieza de un conjunto de piezas situadas en tres filas, la primera con N piezas, la segunda con N-1 y la tercera con N-2. Cada jugador puede coger tantas piezas como desee pero sólo de una de las filas. En este caso los jugadores son la computadora y un ser humano. El control de las fases se hace a través de hechos de control sin el uso de una fase de control propiamente dicha. El número de piezas de la primera fila y el jugador que empieza deberán ser elegidos por el jugador humano al comienzo de la partida.