TP1 -- Langages de Programmation

Version du 21.11.96

Enoncé du problème


Relations:

marie_a(fred, sue).
marie_a(sue, fred).
fils_de(henri, fred).
fils_de(bill, fred).
fils_de(henri, sue).
fils_de(bill, sue).
fille_de(barb, fred).
fille_de(barb, sue).
pere_de(fred, henri).
pere_de(fred, bill).
pere_de(fred, barb).
mere_de(sue, henri).
mere_de(sue, bill).
mere_de(sue, barb).
fille_de(cathy, henri).
pere_de(henri, cathy).
fils_de(bob, barb).
mere_de(barb, bob).
frere_de(henri, bill).
frere_de(henri, barb).
frere_de(bill, henri).
frere_de(bill, barb).
soeur_de(barb, henri).
soeur_de(barb, bill).

Règles:

est_gdpere_de(X, Z) :- pere_de(X, Y), pere_de(Y, Z).
est_gdpere_de(X, Z) :- pere_de(X, Y), mere_de(Y, Z).
est_gdmere_de(X, Z) :- mere_de(X, Y), mere_de(Y, Z).
est_gdmere_de(X, Z) :- mere_de(X, Y), pere_de(Y, Z).
est_ptfils_de(X, Z) :- fils_de(X, Y), fils_de(Y, Z).
est_ptfils_de(X, Z) :- fils_de(X, Y), fille_de(Y, Z).
est_ptefille_de(X, Z) :- fille_de(X, Y), fille_de(Y, Z).
est_ptefille_de(X, Z) :- fille_de(X, Y), fils_de(Y, Z).
est_parent_de(X, Y, Z) :- marie_a(X, Y), pere_de(X, Z); mere_de(X, Z).
est_gdparent_de(X, Y, W) :- est_parent_de(X, Y, Z), pere_de(Z, W); mere_de(Z, W).
est_oncle_de(X, Z) :- frere_de(X, Y), pere_de(Y, Z).
est_oncle_de(X, Z) :- frere_de(X, Y), mere_de(Y, Z).
est_tante_de(X, Z) :- soeur_de(X, Y), pere_de(Y, Z).
est_tante_de (X, Z) :- soeur_de(X, Y), mere_de(Y, Z).
est_neveu_de(X, Z) :- est_oncle_de(Z, X); est_tante_de(Z, X), fils_de(X, I).
est_niece_de(X, Z) :- est_oncle_de(Z, X); est_tante_de(Z, X), fille_de(X, I).
est_cousin_de(X, Z) :- fils_de(X, Y), est_tante_de(Y, Z).
est_cousine_de(X, Z) :- fille_de(X, Y), est_oncle_de(Y, Z).

Questions: Réponses attendues

?- pere_de(cathy, bob). No
?- est_gdpere_de(fred, Z). cathy; bob.
?- est_oncle_de(bill, Z). cathy; bob.
?- est_ptfils_de(bob, Z). fred; sue.
?- est_niece_de(cathy, Z). bill; barb.
?- est_cousin_de(bob, Z). cathy.


Retour au début...

Retour à Staf22 ...


Didier Strasser / strasser@fapse.unige.ch