Sei sulla pagina 1di 3

Programacin Lgica Ing.

Carolina Robelo
EJERCICIOS BSICOS DE PROLOG Ejercicio 1

Representa los siguientes datos en Prolog.


Pablo es un asesino. Karla y Pedro estn casados. Elias est muerto. Marco mata a todo aquel que le de un masaje a Karla. Celia ama a todos los que son buenos bailarines. Julio come cualquier cosa que sea nutritiva o sabrosa. Dos personas viven en la misma casa si tienen la misma direccin. Las personas que juegan al futbol o al baloncesto son deportistas. Dos hombres son hermanos si tienen los mismos padres.

Ejercicio 2

Dada la siguiente base de conocimiento:


amigos(pedro, antonio). amigos(pedro, flora). amigos(pedro, juan). amigos(pedro, vicente). amigos(luis, felipe). amigos(luis, maria). amigos(luis, vicente). amigos(carlos, paloma). amigos(carlos, lucia). amigos(carlos, juan). amigos(carlos, vicente). amigos(fernando, eva). amigos(fernando, pedro). millonario(pedro). millonario(antonio). millonario(flora). soltero(pedro). soltero(flora). soltero(eva). soltero(luis). padre_de(carlos, fernando). padre_de(antonio, maria). padre_de(antonio, carlos).

Se pide a travs de una consulta extraer la siguiente informacin: Definir una regla que determine quienes son hermanos. Mi amigo, Vicente, busca amigos/as de mis amigos que sean millonarios/as y estn solteros/as. Determinar a travs de una regla si una persona es pobre, considerando pobre a todo aquel que no es millonario. Crear una regla que nos permita determinar si una persona es pudiente no es ni millonario ni pobre. Se considera una persona interesante si no tiene hijos y es millonario, crear la regla necesaria.

Programacin Lgica Ing. Carolina Robelo


EJERCICIOS BSICOS DE PROLOG Ejercicio 3 Realiza un programa que dado un signo del horscopo nos muestre el da y mes de inicio y fin de ese signo. Virgo 21/8 al 21/9 Aries 21/3 al 21/4 Libra 21/9 al 21/10 Tauro 21/4 al 21/5 Escorpio 21/10 al 21/11 Gminis 21/5 al 21/6 Sagitario 21/11 al 21/12 Cncer 21/6 al 21/7 Capricornio 21/12 al 21/1 Leo 21/7 al 21/8 Acuario 21/1 al 21/2 Piscis 21/2 al 21/3 Escribir una regla que permita calcular el signo del Zodiaco para un da y un mes concreto, por ejemplo: signo(Dia,Mes,Signo) Ejercicio 4 Supongamos que tenemos el siguiente conocimiento sobre divisibilidad: 2 divide a 6" 2 divide a 12" 3 divide a 6" 3 divide a 12" Si un nmero es divisible por 2 y por 3 entonces es divisible por 6" Escribir un programa que represente este conocimiento y usarlo para responder a las siguientes preguntas: (1) Existe algn mltiplo de 2? (2) Cules son los divisores de 6? (3) Conocemos algn mltiplo de 6? Ejercicio 5 En este ejercicio y los siguientes vamos a realizar un ejemplo que describe la carta de un restaurante. Los objetos que interesan son los platos que se pueden consumir y una primera clasificacin puede ser la siguiente: Entradas: ensaladas, consom, Sandwich Carne: filete de cerdo, pollo asado Pescado: salmon, pardo Postre: flan, tres leche, pastel de limn Escribe como programa Prolog la clasificacin de comidas del restaurante. El programa constara de 10 hechos y los predicados a usar son entrada, carne, pescado y postre. Prueba despus el programa con preguntas como ?- carne(X ?- carne(X), postre(X) ... etc... Ejercicio 6 Definir la regla "plato_principal(X)" que indicara que es un plato principal si es un plato de carne o de pescado.

Programacin Lgica Ing. Carolina Robelo


EJERCICIOS BSICOS DE PROLOG Ejercicio 7 Definir la relacin "comida(X,Y,Z)" que indicara que la comida consta de tres platos, una entrada "X", un plato principal "Y" y un postre "Z". Pidindole respuestas sucesivas a la pregunta ?- comida(X,Y,Z) podemos generar todas las posibles comidas del restaurante. Ejercicio 8 Tenemos el siguiente conocimiento directo: Pedro padece gripe. Pedro padece hepatitis Juan padece hepatitis Mara padece gripe Carlos padece intoxicacin La fiebre es sntoma de gripe El cansancio es sntoma de hepatitis La diarrea es sntoma de intoxicacin El cansancio es sntoma de gripe La aspirina suprime la fiebre La ALKAD suprime la diarrea Las vitaminas suprimen el cansancio Adems podemos aportar el siguiente conocimiento inferido Un frmaco alivia una enfermedad si la enfermedad tiene un sntoma que sea suprimido por el frmaco. Una persona debera tomar un frmaco si padece una enfermedad que sea aliviada por el frmaco. Construir un programa que refleje dicho conocimiento y permita resolver las siguientes cuestiones: 1) Podemos conocer qu dolencia tiene Pedro? Y Mara? 2) Quin padece gripe? 3) Qu sntomas tiene Pedro? 4) Quin padece diarrea? 5) Y quin est cansado? 6) Hay algn frmaco que alivie a Pedro? 7) Hay algn sntoma que compartan Juan y Mara?

Potrebbero piacerti anche