El software que usaremos para la prueba y ejecucin de los algoritmos desarrollados en aula ser el Visual Prolog 5.2, el cual es sencillo de manejar por su entorno prctico, y permitir al alumno digitar sus soluciones algortmicas para probar la lgica de sus planteamientos.
En la estructura del visual prolog, contiene 4 secciones muy bien diferenciadas: Domains Predicates Clauses Goal
I. OBJETIVOS a) Al trmino de este laboratorio, el estudiante ser capaz de: b) Conocer el Visual Prolog c) Identificar claramente las Secciones en Visual Prolog d) Plantear correctamente el uso de Variables en Prolog e) Usar correctamente el programa el Test Goal para las consultas.
II. EQUIPOS Y MATERIALES a) Computadora personal b) Programa Visual Prolog 5.2 instalado c) Cuaderno de clases, donde estn los ejercicios resueltos y propuestos.
III. METODOLOGIA Y ACTIVIDADES a) Encender el computador. b) Crear carpeta donde guardar sus programas. c) Ingresar al Visual Prolog 5.2 d) Codificar la solucin de cada ejercicio propuesto y subirlo a la plataforma Chamilo, en la seccin TAREA. e) Para consultas las puede hacer en la semana de clases con al docente o jefe de prctica encargado para la calificacin correspondiente. f) Guardar la carpeta con sus archivos en la nube (onedrive, Dropbox, .).
IV. IMPORTANTE Antes de comenzar a manipular el Visual Prolog 5.2, crearemos siempre, una carpeta, donde se guardarn todos los programas realizados en el presente laboratorio.
V. MANEJO DEL SOFTWARE GUA PRCTICA SESIN N 2 Facultad: Ingeniera de Electrnica y Sistemas. Asignatura: Programacin Lgica Ciclo: VIII Semestre Acadmico: 2014 - II Docente: Ing. Sal Prez Vega
Sesin 2: Introduccin a Visual Prolog
2 Ing. Sal Prez Vega
Programacin Lgica Para ingresar al Visual Prolog puede verificar en el escritorio del Windows si aparece el icono de acceso directo y de doble clic sobre l, sino aparece, puede dirigirse al Botn Inicio seleccionar la opcin Programas, y de la lista que se despliega, seleccionar Visual Prolog.
Se mostrar la siguiente ventana, que es el entorno de trabajo.
Seleccionar el primer cono o desde el men principal
VI. Conociendo el Lenguaje
Los Comentarios en Visual Prolog /* Estos son para comentarios para varias lneas */
3 Ing. Sal Prez Vega
Programacin Lgica Domains nombre= symbol % comentario para una lnea ..
Uso de Constants Constants es una palabra reservada en visual Prolog y se usa de la siguiente manera:
Constants %hallar el rea del rectngulo pi = 3.1416 r = 5 Goal A=pi, B=r, Area=A*B.
PARTE 1: Introduccin a Programacin Lgica (Visual Prolog)
Los programas en Prolog tienden a desarrollar consultas en base a predicados establecidos y la consulta lo busca en las clausulas.
Desarrollar el siguiente programa:
Domains nombre = symbol Predicates animal(nombre) Clauses animal (perro). animal (gato). animal (conejo). animal (loro). Goal animal(loro).
Guardar su archivo, extensin es *.pro, para ello hacemos file save as ..
Anlisis de las secciones:
La estructuracin de un programa en Visual Prolog contiene estas partes, requeridas necesariamente:
4 Ing. Sal Prez Vega
Programacin Lgica Domains: aqu se definen los tipos de datos que se han de usar en los predicados, un parmetro definido en el Domains puede usarse en varios predicados, por ejemplo,
descripcin, apellido, nombre = symbol edad = integer letra = char
Predicates: aqu se define la estructura del predicado y sus parmetros, cada parmetro del predicado debe estar definido en el Domains con un tipo de dato, los predicados no terminan en punto, as por ejemplo:
El smbolo de culminacin se determina por un punto.
Goal: contiene las consultas a desarrollar en el programa
El prolog permite como se indic extraer consultas lgicas de los que sucede en el conocimiento expresado resultando estas consultas verdaderas o falsas (YES, NO) segn corresponda, aqu se han de ubicar las preguntas necesarias ejemplo es animal es el loro:
animal(loro).
Para poner en memoria todas las clausulas y ver la consulta ejecute Test Goal del men de proyecto o su equivalente CTRL+G o simplemente apretando el botn G de la barra de botones.
Luego observara una ventana de sugerencias y errores y otra ventana que muestra el resultado de la consulta en este caso YES.
Indican que "El perro es animal", "el loro es animal". Tras "ejecutar" el programa, se pueden hacer estas consultas:
5 Ing. Sal Prez Vega
Programacin Lgica
animal(loro). Es animal el loro? Esta es una meta Yes Si, es la respuesta
En vez de la consulta anterior se usar las Variables en una nueva consulta:
Goal: animal(X).
X es una variable, por convencin se escribe con mayscula.
Aadir en la seccin de los predicados nondeterm al predicado animal, esto sirve para liberar la variable que ha sido instanciada y puede seguir instanciando a otros objetos.
Al ejecutar la consulta la respuesta ser:
X=perro X=gato X=conejo X=loro
4 soluciones
Esto corresponde a las especificaciones que se han definido anteriormente en las clusulas.
Si desea aumentar las especificaciones puede ubicar
animal(oso). animal(jirafa).
La respuesta permitir mostrar todas las soluciones para X. (instancias)
Consideracin:
Si desea mejorar su aplicacin utilizar doble comillas todo su programa todas las especificaciones de las clusulas el paquete generara de mejor forma estas definiciones ubicndolas de un color respectivo.
El programa quedara:
6 Ing. Sal Prez Vega
Programacin Lgica Domains nombre = symbol Predicates animal(nombre) %Predicado nico no siempre ser as Clauses animal("Loro"). animal("Perro"). animal("Gato"). animal("Oso"). % Clusulas agregadas animal("Jirafa"). Goal animal(X). %Consulta
PARTE 3: Ejercicios de Aridad
La aridad de un predicado, consiste en el nmero de argumentos que tiene.
% Programa con hechos de aridad cero - predicates uno dos tres cinco siete clauses uno. dos. tres. cinco. siete. goal cinco, write("Encontrado"),nl.
Dado los siguientes predicados, construir el programa con las cuatro secciones de prolog y listar todos los hechos.
EJERCICIOS PROPUESTOS
3.1 jugador(nombre,apellido,edad)
Desarrollo: - Ingresar 5 jugadores Consultas - Listar a todos los jugadores - Listar a los jugadores mayores a 22 aos - Listar a los jugadores menores de edad
7 Ing. Sal Prez Vega
Programacin Lgica
3.2 producto(cdigo,descripcin,stock,precio)
Desarrollo: - Ingresar 5 productos Consultas - Listar todos los productos - Listar los productos cuyo precio este en el rango [150 .. 450] - Listar todos los productos cuyo stock estn en el rango de [1 .. 15> y el precio este en el rango [15 .. 150]
3.3 curso(cdigo, nombre, crditos, prerequisito) Desarrollo: - Ingresar 10 cursos de la escuela Consultas - Listar todos los cursos - Listar los cursos que tienen 4 creditos - Listar los cursos que no tengan prerequisitos
Desarrollo: - Ingresar 5 boletas Consultas - Listar todas las boletas - Listas todas las boletas cuyo total estn en el rango de [200 .. 550] del mes de febrero del 2014
Programacin Lgica Desarrollo: - Ingresar 10 empleados Restricciones: - Sexo: Masculino, Femenino - Estado Civil: Soltero, Casado, Viudo, Divorciado, Konviviente - Ojos: Negros, Pardos, Verdes, Azules, Celestes - Cabellos: Negro, Castao, Rubio, Otros Consultas - Listar a todos los empleados - Listar a todos los empleados mujeres que sean solteras - Listar a todos los empleados hombres, divorciados y de cabellos negros - Listar a todos los empleados mujeres solteras o divorciadas cuya edad este en el rango [19 28], de ojos verdes - Listar a todos los empleados casados o konvivientes, cuya edad este en el rango [25 45], de ojos negros, cabellos negros - Listar a todos los empleados mujeres solteras, casadas o divorciadas, cuya edad este en el rango [25 35], de ojos azules o celestes, de cabellos castaos o rubios.