Académique Documents
Professionnel Documents
Culture Documents
ÍNDICE
Introducción_______________________________________________3
Desarrollo de la práctica____________________________________4
Aprendizaje _______________________________________________9
Bibliografía_______________________________________________15
Página 2 de 15
IRC Práctica final
Introducción
Objetivo de la práctica
Para ello, hemos definido un conjunto de reglas que debe verificar cada
uno de los animales que el programa conoce y, a partir de estas reglas, se le
formularán al usuario preguntas sobre las características que tiene el animal que
ha pensado.
Página 3 de 15
IRC Práctica final
Desarrollo de la práctica
Para realizar esta clasificación se tienen que tener en cuenta que las
preguntas a realizar nos tienen que caracterizar una de las hojas frente a otra, y
así poder llegar a la hoja deseada sin ningún tipo de ambigüedad.
Página 4 de 15
IRC Práctica final
Página 5 de 15
IRC Práctica final
Para cada uno de los animales se realizarán las preguntas sobre las
características que debe cumplir, comenzando por el animal situado más a la
izquierda del árbol y por la pregunta del nodo raíz. Se seguirán verificando las
características para un mismo animal siempre que se responda afirmativamente a
las preguntas y se pasará a comprobar las características del animal siguiente (el
situado inmediatamente a la derecha del animal actual) cada vez que se responda
negativamente a una de las preguntas. De esta forma, cuando lleguemos a una
hoja del árbol el programa dará como solución un animal que cumpla todas las
preguntas anteriormente realizadas.
Página 6 de 15
IRC Práctica final
Resultados obtenidos
Página 7 de 15
IRC Práctica final
Página 8 de 15
IRC Práctica final
Aprendizaje
Página 9 de 15
IRC Práctica final
Página 10 de 15
IRC Práctica final
/*Comienza el juego*/
start :-
nl,
write('PARA ADIVINAR EL ANIMAL EN EL QUE ESTAS PENSANDO, '),
nl,
write('RESPONDE A LAS SIGUIENTES PREGUNTAS'),
nl,
nl,
sera(Animal),
Página 11 de 15
IRC Práctica final
( (Respuesta == s)
->
borrar,
seguir_jugando ;
borrar,
seguir_jugando).
sera(rana) :- rana, !.
sera(salamandra) :- salamandra, !.
sera(serpiente) :- serpiente, !.
sera(tortuga) :- tortuga, !.
sera(cocodrilo) :- cocodrilo, !.
sera(jirafa) :- jirafa, !.
sera(conejo) :- conejo, !.
sera(hombre) :- hombre, !.
Página 12 de 15
IRC Práctica final
sera(oso) :- oso, !.
sera(tigre) :- tigre, !.
sera(leon) :- leon, !.
sera(aguila) :- aguila, !.
sera(pato) :- pato, !.
sera(gallina) :- gallina, !.
sera(avestruz) :- avestruz, !.
sera(pinguino) :- pinguino, !.
sera(carpa) :- carpa, !.
sera(pez_espada):- pez_espada.
/*Anfibios*/
rana :- sangre_fria,
anfibio,
verificar(salta).
salamandra :- sangre_fria,
anfibio.
/*Reptiles*/
serpiente :- sangre_fria,
verificar(se_arrastra).
tortuga :- sangre_fria,
verificar(tiene_caparazon).
cocodrilo :- sangre_fria.
/*Mamíferos*/
jirafa :- mamifero,
herbivoro,
verificar(tiene_cuello_largo).
conejo :- mamifero,
herbivoro.
hombre :- mamifero,
omnivoro,
verificar(razona).
oso :- mamifero,
omnivoro.
tigre :- mamifero,
verificar(tiene_rayas).
leon :- mamifero.
/*Aves*/
Página 13 de 15
IRC Práctica final
aguila :- ave,
voladora,
verificar(es_ave_rapaz).
pato :- ave,
voladora.
gallina :- ave,
verificar(es_domestico).
avestruz :- ave,
verificar(corre_veloz).
pinguino :- ave.
/*Peces*/
carpa :- verificar(vive_rio).
pez_espada.
sangre_fria :- verificar(tiene_sangre_fria).
anfibio :- verificar(vive_tierra_y_agua).
mamifero :- verificar(tiene_pelo).
herbivoro :- verificar(es_herbivoro).
omnivoro :- verificar(es_omnivoro).
ave :- verificar(tiene_alas).
voladora :- verificar(vuela).
verificar(S) :-
(cumple(S)
->
true ;
(no_cumple(S)
->
fail ;
preguntar(S))).
preguntar(Pregunta) :-
Página 14 de 15
IRC Práctica final
read(Respuesta),
nl,
( (Respuesta == s)
->
assert(cumple(Pregunta)) ;
assert(no_cumple(Pregunta)), fail).
seguir_jugando :-
borrar :- retract(cumple(_)),fail.
borrar :- retract(no_cumple(_)),fail.
borrar.
Bibliografía
- Prolog
Francis Giannesini, Henry Kanoui y otros.
Ed. Addison-Wesley Iberoamericana, 1989
Página 15 de 15