miércoles, 27 de febrero de 2013

Reto de la semana Arbol Genealógico

/* borraPantalla <- borra="" br="" la="" pantalla="">borraPantalla :- borraLinea(25).
borraLinea(1) :- !,nl.
borraLinea(N) :- nl,N1 is N-1,borraLinea(N1).

?-borraPantalla.

hombre(felipe).
hombre(rodrigo).
hombre(genaro).
hombre(jesus).
hombre(jorge).
hombre(erick).
hombre(antonio).
hombre(yoltzin).
hombre(milton).
hombre(alejandro).

mujer(isabel).
mujer(pina).
mujer(margarita).
mujer(isabel2).
mujer(mariluz).
mujer(maricruz).
mujer(orquidea).
mujer(diana).
mujer(alondra).
mujer(marlen).
mujer(yunnuen).
mujer(yoshandi).

padre(felipe,margarita).
padre(roberto,genaro).
padre(genaro,isabel2).
padre(genaro,jesus).
padre(genaro,mariluz).
padre(genaro,maricruz).
padre(genaro,alejandro).
padre(jesus,antonio).
padre(jesus,diana).
padre(jesus,alondra).

madre(isabel,margarita).
madre(pina,genaro).
madre(margarita,isabel2).
madre(margarita,jesus).
madre(margarita,mariluz).
madre(margarita,maricruz).
madre(margarita,alejandro).
madre(isabel2,orquidea).
madre(isabel2,jorge).
madre(isabel2,erick).
madre(mariluz,yoltzin).
madre(mariluz,milton).
madre(maricruz,marlen).
madre(maricruz,yunnuen).
madre(maricruz,yoshandy).

todalafamilia(X):- hombre(X); mujer(X).
matrimonio(X,Y):- padre(X,Z), madre(Y,Z).
hijo_o_hija(X,Y):- padre(Y,X); madre(Y,X).
hermanos(X,Y):-madre(Z,X),madre(Z,Y).
hermano(X,Y):-hombre(X),hombre(Y),hermanos(Y,X).
hermana(X,Y):- mujer(X),mujer(Y), hermanos(X,Y).

tio_o_tia(X,Y):- hijo_o_hija(Y,Z),hermanos(X,Z).


jueves, 21 de febrero de 2013

Empezando el curso Prolog



Bueno para empezar ¿qué es Prolog?, prolog es el nombre que se le fue asignado a la programacion lógica, esta programacion empieza más o menos en los 70's por por Alain Colmerauer, esta basada en la logica matemática, la forma de como solucionar problemas en prolog es muy diferente a las otras formas de programar ya que es solo declartativa que quiero decir con esto que vamos a darle al programa las bases para que el trabaje por si solo, declaramos unas lineas y despues hacemos un par de preguntas.
 
El lenguaje Prolog tiene un mecanismo no muy complejo, podemos desarrollarlo en una hoja de texto y despues compilarlo para eso utilizaremos el programa swi-prolog que se puede descargar de la pagina http://www.swi-prolog.org/ debemos tomar en cuenta el  tipo de sistemal operativo al cual es compatible. 
 
Pero una de las cosas importantes para lograr un funcionamineto correcto en  Prolog es tomar en cuenta que las clausulas deben tener una secuencia de tres tipos:

a).- Hechos, declaran las cosas que son incondicionalmente ciertas.

Al parecer son las llamadas unarias un ejemplo de ello es:

padre(alejandro).   "Esta es la forma declarativa en prolog. Es cierta pues la relacion padre definitivamente solo involucra a alejandro".

b).- Reglas, especifican qué cosas se pueden deducir, si es que se cumplen ciertas
condiciones.
c).- Preguntas, permiten que el usuario pida alguna información derivable de los hechos y
las reglas del programa.

Seguidores