Prolog - ayuda con prolog

 
Vista:

ayuda con prolog

Publicado por sebastian (1 intervención) el 09/01/2011 05:28:59
Hola les comento que soy nuevo en este lenguaje y queria saber si alguien me puede decir como hago lo sig: estoy haciendo un ejercicio de arbol genealogico y quiero poner en la consulta un nombre y que me diga si es familiar o no... Lo estoy haciendo con recursividad y el problema esta en la linea que esta comentada por favor ayudenme... Muchas gracias

Progenitor(fabian,zenon).
progenitor(dora,zenon).
progenitor(german,tita).
progenitor(braulia,tita).

progenitor(americo,silvio).
progenitor(aiello,silvio).
progenitor(jaime,elsa).
progenitor(florinda,elsa).

progenitor(zenon,julio).
progenitor(tita,julio).

progenitor(silvio,elena).
progenitor(elsa,elena).

progenitor(julio,sebastian).
progenitor(elena,sebastian).

progenitor(sebastian,bautista).
progenitor(angeles,bautista).

miembro([fabian,zenon,dora,german,tita,braulia,americo,silvio,aiello,jaime,elsa,florinda,julio,elena,sebastian,angeles,bautista]).

familiar(X):-miembro([X|_]).
%%%%familiar(X):-miembro([_|R]),familiar(X).
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:ayuda con prolog

Publicado por Fernando (9 intervenciones) el 28/01/2011 14:57:48
Hola,
no entiendo bien qué es eso de "miembro"

la idea no seria poner dos parámentros? decis "quiero poner en la consulta un nombre y que me diga si es familiar o no"

nada mas querés saber si pertenece al arbol genealogico o querés 2 personas y saber si son parientes? es decir, el arbol genealogico es para una familia y nada mas?

1. si el árbol cargado es solo para una familia y vos querés saber si UNA presona pertenece a la familia:

familiar(X):- progenitor(X,L),!.
familiar(X):- progenitor(L,X).

o sea, lo buscás por padre de todos o lo buscás por hijo de alguno, con eso ya sabés si pertenece a la familia

2. si es más complejo lo que necesitás, porq aun no entiendo la lista miembro, decime. solo una cosa: si lo que tenés q ver es si TODOS los de la lista miembro están en el arbol genealogico, es usando lo del punto 1 mas:

listafamiliar([]).
listafamiliar([X|L]):-familia(X), listafamiliar(L).

disculpá si no es lo q necesitas, podés darme más detalles del problema?

saludos
Fernando
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar