Вы находитесь на странице: 1из 3

FACULTAD DE INGENIERIA INDUSTRIAL Y DE SISTEMAS

CURSO TURNO CICLO SECCION AULA FECHA PERIODO ACADMICO PROFESOR HORA

: Programacin Lgica : Tarde : VII : : F-101 : 07 /09/2013 : 2013-II : ING. FIDEL PRADO MACALUPU : 18:00 a 19:30

EXAMEN PARCIAL

1.- Justificar la verdad (V) o falsedad (F) de las siguientes proposiciones:

(5ptos)

a.- En la programacin declarativa la solucin es obtenida mediante mecanismo internos de control indicndole a la computadora que es lo que est buscando. ( v) b.- En prolog las sentencias que se utilizan permiten describir el problema que se quiere solucionar, pero no las instrucciones necesarias para solucionarlo. ( v ) c.- En la unificacin cada objetivo se valida con un conjunto de clusulas susceptibles de ser ejecutadas y terminan su ejecucin bien en xito (V) o fracaso (F). (v ) d.- El back tracking o vuelta atrs se inicia cuando la validacin de un objetivo falla en el proceso de la unificacin deshaciendo todo lo ejecutado anteriormente. ( v) e.- En prolog no existen instrucciones de control para realizar procesos recursivos, estas se reemplazan mediante reglas que se basan en la unificacin y el back tracking. (v ) 2.- Consideremos el siguiente programa con informacin de parejas inscritas en el registro libro_de_familia( esposo(nombre(antonio,garcia,fernandez), profesion(ingeniero), salario(4000)), esposa(nombre(ana,ruiz,lopez), profesion(docente), salario(1200)), domicilio(rimac)). libro_de_familia( esposo(nombre(fidel,prado,macalupu), profesion(ingeniero), salario(6000)), esposa(nombre(ana,tenorio,villegas), profesion(sus_labores), salario(0)), domicilio(rimac)). libro_de_familia( esposo(nombre(luis,bueno,martinez), profesion(docente), salario(1200)), esposa(nombre(gladys,grados,millan), profesion(medico), salario(250000)), domicilio(cercado)).

libro_de_familia( esposo(nombre(miguel,gonzalez,ruiz), profesion(empresario), salario(400000)),domicilio(rimac)) esposa(nombre(belen,salguero,cuevas), profesion(sus_labores), salario(0)), domicilio(barranco)). (1) Definir el predicado profesin(X) que se verifique si X es una profesin que aparece en el programa. SOLUCION : profesion(X):libro_de_familia(esposo(_,profesion(X),_),_). profesion(X):libro_de_familia(_,esposa(_, profesion(X),_),_). (2) Definir el predicado primer_apellido(X) que se verifique si X es el primer apellido de alguien SOLUCION: primer_apellido(X):libro_de_familia(esposo(nombre(_,X,_),_,_),_,_). primer_apellido(X):libro_de_familia(_,esposa(nombre(_,X,_),_,_),_). (3) Determinar el nombre completo de todas las personas que viven en el rimac rimac(X):libro_de_familia(esposo(X,_,_),_,domicilio(rimac)). rimac(X):libro_de_familia(_,esposa(X,_,_),domicilio(rimac)). (4) Definir el predicado ingresos_familiares(N), de forma que si N es una cantidad que determina los ingresos totales de una familia. ingresos_familiares(X):libro_de_familia(esposo(_,_,salario(N1)),esposa(_,_,salario(N2)),_), X is N1+N2. (5) Definir el predicado pareja(Hombre,Mujer) que devuelva los nombres de pila de las parejas existentes. pareja(X, Y):libro_de_familia(esposo(nombre(X,_,_),_,_),esposa(nombre(Y,_,_),_,_),_). (6) Definir el predicado sueldo(X,Y) que se verifique si el sueldo de la persona de nombre completo X es Y. sueldo(X, Y):libro_de_familia(esposo(X,_,salario(Y)),_,_). sueldo(X, Y):libro_de_familia(_,esposa(X,_,salario(Y)),_). 3.- Elaborar un men que ejecute operaciones de ingresar caracteres a una lista, busque y elimine un elemento de la lista ingresada, de acuerdo a la siguiente estructura: Men-listas 1 2 3 4 Ingresa Buscar Eliminar salir

4.- Se 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: paella, gazpacho, consom * Carne: filete de cerdo, pollo asado * Pescado: trucha, bacalao * Postre: flan, nueces con miel, naranja Escribe como un programa en Prolog la clasificacin de comidas del restaurante. El programa constara de 10 clusulas y los predicados a usar son entrada/1, carne/1, pescado/1 y postre/1. El /1 indica que el predicado debe tener un solo argumento. El programa debe evaluar lo siguiente:

a.- carne(X), postre(X) b.- Definir la relacin "plato_principal(X)" que indicara que un plato principal es un plato de carne o de pescado. c.- Definir la relacin "comida(X,Y,Z)" que indique que la comida consta de tres platos, una entrada "X", un plato principal "Y" y un postre "Z". d.- Cmo se pregunta por las comidas con pescado sin modificar el programa? SOLUCION: A. entrada(paella). entrada(gazpacho). entrada(consome). carne(filete_de_cerdo). carne(pollo_asado). pescado(trucha). pescado(bacalao). postre(flan). postre(nueces_con_miel). postre(naranja). B. plato_principal(X):carne(X). plato_principal(X):pescado(X).

C. comida(X, Y, Z):entrada(X), plato_principal(Y), postre(Z).

D. comida(X, Y, Z), pescado(Y).

Вам также может понравиться