Prolog 2011 2

8
Ejercicios en Prolog Calculadora de Figuras Geométricas MANEJO DE BASES DE DATOS

description

Ejercicios de Prolog

Transcript of Prolog 2011 2

Ejercicios en Prolog

Calculadora de Figuras Geométricas

MANEJO DE BASES DE DATOS

Calculadora de figuras geométricasprincipal:-nl,

display('/*/*** ESTE PROGRAMA CALCULA AREAS DE FIGURAS GEOMETRICAS ***\*\'),nl,nl,

display('/* 1.AREA TRIANGULO. *\ '),nl,nl,

display('/* 2.AREA CIRCULO. *\ '),nl,nl,

display('/* 3.SALIR . *\ '),nl,nl,

display(' DIGITE SU OPCION: *\ '),nl,nl,

read(X),opcion(X),

opcion(3).

opcion(X):- X=1,triangulo(W),principal;X=2,circulo(W),principal.

triangulo(W):- display('DIGITE EL VALOR DE LA BASE: '),nl,nl,

read(B),nl,nl,

display('DIGITE EL VALOR DE LA ALTURA: '),nl,nl,

read(H),

areat(B,H,RTA),nl,nl,

display('EL AREA DEL TRIANGULO ES: '),display(RTA),nl,nl.

areat(B,H,RTA):-RTA is(B*H)/2.

circulo(W):- display('DIGITE EL RADIO DEL CIRCULO: '),nl,nl,

read(R),nl,nl,

areaci(R,RC),nl,nl,

display('EL AREA DEL CIRCULO ES: '),display(RC),nl,nl.

areaci(R,RC):-RC is(3.1416*R*R).

Ejercicio: Complementar esta calculadora con 4 opciones mas

Manejo de Bases de Datos

• Ingeniemos dos tablas

FUENTE: http://www.cs.us.es/~jalonso/cursos/pd-01/temas/tema-05.pdf

Diseño de las Tablas en Prolog

clientes(paco,soltero,medico,2).

clientes(ana,soltero,estudiante,0).

clientes(maria,casado,medico,3).

clientes(jose,viudo,ebanista,1).

clientes(luisa,soltero,estudiante,5).

aficiones(ana,playa,voley,cine).

aficiones(maria,playa,natacion,tv).

aficiones(andres,campo,voley,tv).

En Bases de datos:Selecciona de CLIENTES los NOMBRES de los clientes talesque PROFESION = Estudiante

En Prolog:?- clientes(N,_,estudiante,_).

?- findall(_N,clientes(_N,_,estudiante,_),L).

En Bases de datos:Selecciona de CLIENTES las entradas tales que PROFESION= Estudiante y crea la tabla CLIENTES EST .

En Prolog:clientes_est(N,E,estudiante,H):- clientes(N,E,estudiante,H).

Sesíon?- clientes_est(N,E,P,H).

En Bases de datos:Selecciona de CLIENTES los pares NOMBRE–PROFESION.

En Prolog:?- clientes(Nombre,_,Profesion,_).

?- findall(_N-_P,clientes(_N,_,_P,_),L).

En Bases de datos:Selecciona de CLIENTES los NOMBRES de tales que ESTADOCIVIL = soltero y PROFESION = medico.

En Prolog:?- clientes(Nombre,soltero,medico,_).

En Bases de datos:Selecciona de CLIENTES y AFICIONES los NOMBRES de talesque ESTADO CIVIL = soltero y VACACIONES = playa.

En Prolog:?- clientes(N,soltero,_,_),aficiones(N,playa,_,_).

Ejercicio de Practica

• Realice un modelo entidad relación de una basede datos para ser aplicado en Prolog y genereconsultas entre tablas que permitan evidenciarlas diferentes operaciones básicas del algebrarelacional de las bases de datos:– Selección

– Sesión

– Proyección

– Intersección

– Unión

Referencias

• Fuente: José A. Alonso Jiménez - Miguel A. Gutiérrez Naranjo . http://www.cs.us.es/~jalonso/cursos/

• Bratko, I. Prolog Programming for Artificial

Intelligence (2nd ed.) (Addison–Wesley, 1990)Cap. 4: “Using Structures: Example Programs”

Cap. 8: “Programming Style and Technique”

Cap. 9: “Operations on Data Structures”