Laboratorio de Lenguajes de Programación - Semana 7
SE PLANTEA EL SIGUIENTE RAZONAMIENTO:
¿Qué persona es cuñado de Quién?
Se tienen los siguientes parentescos:
Pedro es hermano de Luis. Luis es el esposo de Ana; Antonio es el esposo de Elsa y Juan es el hermano de Luis. Carlos es hermano de Juan. Elsa es hermana de Luis y esposa de Antonio.
ANÁLISIS
Tenemos dos parejas de esposos:
esposos(luis, ana). luis esposo de ana
esposos(elsa, antonio). antonio esposo de elsa
Ahora, tenemos los siguientes parejas de hermanos:
hermanos(luis, pedro).
hermanos(luis, juan).
hermanos(juan, carlos). por consiguiente:
hermanos(luis,carlos).
hermanos(luis, elsa)., como elsa es hermana de luis, entonces se tienen los siguientes parentescos:
hermanos(elsa, luis).
hermanos(elsa, carlos).
hermanos(elsa, juan).
hermanos(elsa, pedro).
RAZONAMIENTOS
Para que Antonio tenga cuñados, es necesario que Elsa tenga hermanos, todos los hermanos de Elsa son cuñados de Antonio; y todos los hermanos de Luis son cuñados de Ana; esto nos parece lógico a nosotros, pero recordemos que a prolog es necesario declararselo, entonces:
cunados(X, Z), en este caso X puede ser Ana o Antonio, los que no pertenecen a la familia; y Z sera algun miembro de la familia de hermanos; Y sera el esposo/esposa de X
Z sera cuñado de X si: X y Y son esposos, y ademas Y y Z son hermanos
ejemplo literal:
luis es cuñado de antonio si: antonio y elsa son esposos y ademas elsa y luis son hermanos
carlos es cuñado de ana si: ana y luis son esposos y ademas luis y carlos son hermanos
La condición quedara algo asi:
cunados(X,Z) :- esposos(Y,X) , hermanos(Y,Z)
HIPÓTESIS
El programa completo tendría la siguiente declaración:
cunados(X,Z) :- esposos(Y,X) , hermanos(Y,Z).
esposos(luis, ana).
esposos(elsa, antonio).
hermanos(elsa, luis).
hermanos(elsa, juan).
hermanos(elsa, carlos).
hermanos(elsa, pedro).
hermanos(luis, pedro).
hermanos(luis, juan).
hermanos(juan, carlos).
hermanos(luis, carlos).
hermanos(luis, elsa).
EJECUCIÓN
Abrimos un archivo de texto, lo tecleamos y lo guardamos con la terminación *.pro / *.prolog.
Ahora veamos su ejecución, abrimos una terminal y ahora escribimos prolog para abrir el entorno de SWI-PROLOG:
Despues compilamos el código que tecleamos:
Queremos saber de las parejas de esposos quienes son los cuñados de Ana y quienes los de Antonio, asi que le preguntamos a Prolog lo siguiente:
cunados(antonio,X). (cunados de antonio?), no importa quien, listar todas las posibilidades.
cunados(ana,X). (cunados de ana?), no importa quien, listar todas las posibilidades.
RESULTADOS
CONCLUSIÓN
Sabiamos que cada uno tendría 4 cuñados, lo que aqui comprobamos es que el programa que tecleamos funciono bien porque nos regreso los resultados que esperabamos, si Luis tiene 4 hermanos, esos 4 hermanos son los cuñados de Ana, y los 4 hermanos de Elsa son los 4 cuñados de Antonio.
SALUDOS!!! ^_^
SE PLANTEA EL SIGUIENTE RAZONAMIENTO:
¿Qué persona es cuñado de Quién?
Se tienen los siguientes parentescos:
Pedro es hermano de Luis. Luis es el esposo de Ana; Antonio es el esposo de Elsa y Juan es el hermano de Luis. Carlos es hermano de Juan. Elsa es hermana de Luis y esposa de Antonio.
ANÁLISIS
Tenemos dos parejas de esposos:
esposos(luis, ana). luis esposo de ana
esposos(elsa, antonio). antonio esposo de elsa
Ahora, tenemos los siguientes parejas de hermanos:
hermanos(luis, pedro).
hermanos(luis, juan).
hermanos(juan, carlos). por consiguiente:
hermanos(luis,carlos).
hermanos(luis, elsa)., como elsa es hermana de luis, entonces se tienen los siguientes parentescos:
hermanos(elsa, luis).
hermanos(elsa, carlos).
hermanos(elsa, juan).
hermanos(elsa, pedro).
RAZONAMIENTOS
Para que Antonio tenga cuñados, es necesario que Elsa tenga hermanos, todos los hermanos de Elsa son cuñados de Antonio; y todos los hermanos de Luis son cuñados de Ana; esto nos parece lógico a nosotros, pero recordemos que a prolog es necesario declararselo, entonces:
cunados(X, Z), en este caso X puede ser Ana o Antonio, los que no pertenecen a la familia; y Z sera algun miembro de la familia de hermanos; Y sera el esposo/esposa de X
Z sera cuñado de X si: X y Y son esposos, y ademas Y y Z son hermanos
ejemplo literal:
luis es cuñado de antonio si: antonio y elsa son esposos y ademas elsa y luis son hermanos
carlos es cuñado de ana si: ana y luis son esposos y ademas luis y carlos son hermanos
La condición quedara algo asi:
cunados(X,Z) :- esposos(Y,X) , hermanos(Y,Z)
HIPÓTESIS
El programa completo tendría la siguiente declaración:
cunados(X,Z) :- esposos(Y,X) , hermanos(Y,Z).
esposos(luis, ana).
esposos(elsa, antonio).
hermanos(elsa, luis).
hermanos(elsa, juan).
hermanos(elsa, carlos).
hermanos(elsa, pedro).
hermanos(luis, pedro).
hermanos(luis, juan).
hermanos(juan, carlos).
hermanos(luis, carlos).
hermanos(luis, elsa).
EJECUCIÓN
Abrimos un archivo de texto, lo tecleamos y lo guardamos con la terminación *.pro / *.prolog.
Ahora veamos su ejecución, abrimos una terminal y ahora escribimos prolog para abrir el entorno de SWI-PROLOG:
Despues compilamos el código que tecleamos:
Queremos saber de las parejas de esposos quienes son los cuñados de Ana y quienes los de Antonio, asi que le preguntamos a Prolog lo siguiente:
cunados(antonio,X). (cunados de antonio?), no importa quien, listar todas las posibilidades.
cunados(ana,X). (cunados de ana?), no importa quien, listar todas las posibilidades.
RESULTADOS
CONCLUSIÓN
Sabiamos que cada uno tendría 4 cuñados, lo que aqui comprobamos es que el programa que tecleamos funciono bien porque nos regreso los resultados que esperabamos, si Luis tiene 4 hermanos, esos 4 hermanos son los cuñados de Ana, y los 4 hermanos de Elsa son los 4 cuñados de Antonio.
SALUDOS!!! ^_^
Muy bien. Cinco puntos para el lab.
ResponderEliminarpero aca solo saca los cuñados por parte de la pareja y los cuñados por parte de la misma familia como el esposo de una hermana de el o ella.
ResponderEliminar