Ejercicios
1.3. Traduzca las siguientes sentencias a reglas Prolog.
a). Cualquiera que tiene un hijo es feliz (introduzca la relación unaria llamada 'feliz').
feliz(X):- padre (X,Y).
1 ?- feliz(X).
X = pamela ;
X = tomas ;
X = tomas ;
X = roberto ;
X = roberto ;
X = patricia.
X = pamela ;
X = tomas ;
X = tomas ;
X = roberto ;
X = roberto ;
X = patricia.
b). Para todo X, si X tiene un hijo que tiene una hermana, entonces X tiene dos hijos
(introduzca la relación tiene-dos-hijos).
tiene_dos_hijos(X):- padre(X,Y), padre(Y,Z).
2 ?- tiene_dos_hijos(X).
X = pamela ;
X = tomas ;
X = tomas ;
X = tomas ;
X = tomas ;
X = roberto ;
X = roberto ;
X = roberto ;
X = roberto ;
X = patricia.
X = pamela ;
X = tomas ;
X = tomas ;
X = tomas ;
X = tomas ;
X = roberto ;
X = roberto ;
X = roberto ;
X = roberto ;
X = patricia.
1.4. Defina la relación 'nieto' usando la relación 'progenitor'.
Recomendación: Será similar a la relación abuelo.
es_nieto(X):- padre(Y,Z), padre(Z,X).
3?- es_nieto(X).
X = ana ;
X = patricia ;
X = ana ;
X = patricia ;
X = jaime ;
X = ana ;
X = patricia ;
X = ana ;
X = patricia ;
X = jaime ;
1.5. Defina la relación tia( X, Y) en términos de las relaciones 'progenitor' y
'hermana'. Dibuje primero un diagrama para ésta relación.
mujer(pamela).
mujer(elizabeth).
mujer(ana).
mujer(patricia).
es_hermana(X):- padre(Z,Y), padre(Z,X), mujer(X).
mujer(elizabeth).
mujer(ana).
mujer(patricia).
es_hermana(X):- padre(Z,Y), padre(Z,X), mujer(X).
4 ?- es_hermana(X).
X = elizabeth ;
X = elizabeth ;
X = ana ;
X = patricia ;
X = ana ;
X = patricia ;
X = elizabeth ;
X = elizabeth ;
X = ana ;
X = patricia ;
X = ana ;
X = patricia ;
es_tia(X):- es_hermana(X), padre(Z,Y), padre(Z,X), mujer(X).
5 ?- es_tia(X).
X = elizabeth ;
X = elizabeth ;
X = elizabeth ;
X = elizabeth ;
X = ana ;
X = ana ;
X = patricia ;
X = patricia ;
X = ana ;
X = ana ;
X = patricia;
X = elizabeth ;
X = elizabeth ;
X = elizabeth ;
X = elizabeth ;
X = ana ;
X = ana ;
X = patricia ;
X = patricia ;
X = ana ;
X = ana ;
X = patricia;
No hay comentarios:
Publicar un comentario