1 Introducción al lenguaje PROLOG



Documentos relacionados
Introducción a la plataforma Moodle Aníbal de la Torre Plataforma Moodle. Accediendo a los contenidos

Instructivo de Instalación y Uso de software MasterControl

Configuración de correo en Mozilla Thunderbird

Combinar correspondencia (I)

UNIDAD DIDACTICA 3 USUARIOS Y GRUPOS EN REDES WINDOWS 2003 SERVER II

MANUAL DE USO Agencias de viaje NEOTURISMO.COM

Proceso de cifrado. La fortaleza de los algoritmos es que son públicos, es decir, se conocen todas las transformaciones que se aplican al documento

Adaptación al NPGC. Introducción. NPGC.doc. Qué cambios hay en el NPGC? Telf.: Fax.:

PLAN DE AUDITORIA. La auditoria no busca culpables, busca la mejora de los procesos y servicios de la Entidad.

Guía de Uso Básico de Prolog

Alerta Pulsador. Programa. Configuración

Publicación del sitio web en internet. Equipo 6

Manual Gran Hotel. N. Res: Número de Reserva que el programa le ha adjudicado de forma automática

COMBINAR CORRESPONDENCIA EN MICROSOFT WORD

Tienes una Historia que Contar. Manual para los participantes

Reglas básicas. Forma de jugar. Puntajes. Turnos. Jugada. Juegos

NOTAS TÉCNICAS SOBRE EL SIT: Definición y Configuración de Usuarios

Los objetivos por los que otros han participado en el Programa TANDEM son:

15 CORREO WEB CORREO WEB

Problemas resueltos de genética mendeliana

Teclado sobre una PDA para Personas con Parálisis Cerebral

Contenidos. Introducción general

SRM RELACIÓN CON LOS PROVEEDORES MANUAL DEL SUMINISTRADOR. Junio Versión 2

MACROS. Automatizar tareas a través del uso de las macros.

2.3 El Mundo de Tarski.

TRANSFERENCIA DE ARCHIVOS AL SERVIDOR DEL PNTE MANUAL ELEMENTAL DE FTP CON FILEZILLA

Acceder a correo de 1000tentaciones.com a través de web.

INTRODUCCIÓN DÓNDE ENCONTRAR LA CALCULADORA WIRIS

Internet como herramientas de comunicación: El correo electrónico

INSTALACIÓN DEL SPSS 15.0 DESDE UN SERVIDOR

Bloque de Experiencias YO Y MI COLEGIO

ESTÁNDAR DESEMPEÑO BÁSICO Recopila información, la organiza y la procesa de forma adecuada, utilizando herramientas tecnológicas.

TEMA 4: EMPEZANDO A NAVEGAR ESCUELA UNIVERSITARIA DE INFORMÁTICA. Raúl Martín Martín

La pestaña Inicio contiene las operaciones más comunes sobre copiar, cortar y pegar, además de las operaciones de Fuente, Párrafo, Estilo y Edición.

MIGRACIÓN NEXUS 8 A A3ERP 9

Bibliotecas Escolares. Perfil de Lector.

1.- INSTALACIÓN 2.- REGISTRO

Manual de Configuración de Spam Assassin para Plesk

LOS RECURSOS PARA EL TRABAJO Y LOS APRENDIZAJES INVOLUCRADOS PRINCIPALES APRENDIZAJES EN JUEGO

Manual de CORREO ELECTRÓNICO

Tobii Communicator 4. Introducción

INTRODUCCIÓN A CARPETAS COMPARTIDAS WINDOWS XP

COREL DRAW PARTE II. TERCER y CUARTO BIMESTRE 1 B - 2 AÑO A- B TABLAS

Curso Internet Básico - Aularagon

UTILIZACIÓN DE UNA CUENTA DE CORREO ELECTRÓNICO (NUEVO) Acceso al correo electrónico

(Soluciones ADSL e-comercio) GUIA DE USUARIO Versión 2.0

Sesión 3 - Movimiento Diferencial

Redes de área local: Aplicaciones y servicios WINDOWS

generar columnas de texto y números disponer texto en columnas paralelas (para traducciones por ejemplo) situar imágenes junto a textos.

Práctica de laboratorio Conexión y configuración de hosts

Instrucciones de uso del nuevo webmail del Colegio

PROLOG Inteligencia Artificial Universidad de Talca, II Semestre Jorge Pérez R.

CURSOS PRÁCTICOS SEDEN. Maquetación de un trabajo en Word SEDEN

A25. Informática aplicada a la gestión Curso 2005/2006 Excel Tema 7. Funciones avanzadas de Excel II

NORMATIVA DE USO DE LA NUEVA OFICINA ELECTRÓNICA

AUTOR/PRODUCCIÓN: España. Ministerio de Educación y Ciencia

MANUAL DE USO DE LA APLICACIÓN

CREAR UN ÁLBUM DE FOTOGRAFÍAS

TUTORIAL 8 REDES PROFESIONALES: LINKED IN

Programa Presupuestos de Sevillana de Informática.

Colombia GPS Manual del usuario Funciones de usuario final

CIERRE EJERCICIO CON BECONTA

Manual del panel. Core-Admin

Tiempo libre y vida social Alternativas de ocio y tiempo libre

Funciones, x, y, gráficos

NOTAS TÉCNICAS SOBRE EL SIT: Conceptos contables

Escribimos normas de convivencia

Costas de Patagonia -Viaje en kayak

En Familia. Consta de cuatro capítulos de una duración de 10 minutos aproximados cada uno.

Manual de ayuda Terra España. Cómo guardar mis datos en mi equipo para transferirlos a una nueva cuenta

Las propiedades de la clase en java es el equivalente a las variables globales en lenguajes estructurados como el C.

Ahora comencemos!... Las operaciones matemáticas fundamentales pueden realizarse de forma rápida y sencilla con Miicrosofftt Excell.

CONFEDERACIÓN DE EMPRESARIOS DE MÁLAGA

Leemos el texto El problema de la basura

CORREO ELECTRÓNICO. QUÉ ES UN CORREO ELECTRÓNICO?

SOROLLA MODULO DE JUSTIFICANTES DEL GASTO

EN CASA DEL PROFESOR Reino Unido


Manual de instalación Actualizador masivo de Stocks y Precios

5.1 Listas. Por qué usar listas?

LECCIÓN 1 5 PROBLEMAS RESUELTOS

PROGRAMA DE GESTIÓN DE USUARIOS, PROYECTOS Y SOLICITUDES DEL SERVICIO GENERAL DE APOYO A LA INVESTIGACIÓN SAI

PC alumno: Los alumnos entraran en el sistema como usuario/usuario y accederán a la aplicación Cañón Virtual.

EN CASA DEL PROFESOR Reino Unido

TEMA 5. INTRODUCCIÓN AL MANEJO DE ORIGIN 6.1

Actividades para empezar bien el día

TIC s EL CORREO ELECTRÓNICO

Introducción. Contabilidad y Estados Financieros

Para usarlo necesitás, únicamente, una cuenta de Gmail o una cuenta con el dominio donbosco.org.ar (Ejemplo: jlsanchez@donbosco.org.

Configuración de Exchange en Blackberry

Uso de carpetas, archivos e impresoras compartidas

TEMA 2 WINDOWS XP Lección 4 BLOC DE NOTAS

2. Entorno de trabajo y funcionalidad en Arquímedes

EN CASA DEL PROFESOR Reino Unido

Transcripción:

1 Introducción al lenguaje PROLOG 1.1 Generalidades Prolog es un lenguaje de programación que se utiliza para resolver problemas en los que existen objetos y relaciones entre objetos. La programación en Prolog consiste simplemente en: declarar hechos sobre los objetos y sus relaciones, definir reglas sobre dichos objetos y relaciones, y hacer preguntas. Prolog es un lenguaje de programación coloquial, lo cual quiere decir que el ordenador y el programador sostienen una especie de conversación. Prolog esperará a que introduzcas los hechos y las reglas que definen el problema a resolver. A continuación, si se hacen las preguntas adecuadas, Prolog buscará las respuestas y las presentará en la pantalla. En esta primera práctica se van a presentar los aspectos fundamentales de Prolog, sin entrar en detalle en ninguno de ellos. El objetivo es que tengas un primer contacto con Prolog, con su entorno y que realices los primeros programas. Antes de comenzar es conveniente hacer una recomendación. El lenguaje Prolog es diferente a cualquier otro lenguaje de bajo o alto nivel que conozcas, por tanto, nunca intentes resolver un problema en otro lenguaje para luego traducirlo a Prolog. No tienes que buscar un algoritmo que resuelva tu problema, sólo tienes que dar las bases para que Prolog lo resuelva. 1.2 Los hechos Un hecho es una relación entre objetos. Su sintaxis en PCD-Prolog es relacion (objeto, objeto,...). La relación se conoce como el predicado y los objetos como los argumentos. Los siguientes puntos son importantes: Los nombres de las relaciones deben comenzar con una letra minúscula. Los objetos se escriben separados por comas y encerrados entre paréntesis. 5

Al final del hecho debe de ir un punto. Por ejemplo, un hecho es persona(juan,27). 1.3 Las reglas Cuando la verdad de un hecho depende de la verdad de otro hecho o de un grupo de hechos se usa una regla. Una regla consiste en una cabeza y un cuerpo. El cuerpo puede estar formado por varios hechos u objetivos. Su sintaxis es cabeza :- objetivo 1, objetivo 2,..., objetivo n. Los objetivos van separados por comas, especificando conjunción y al final debe de ir un punto. Por ejemplo, una regla es mayor de edad(x):-persona(x,e),e>18. 1.4 Las variables Las variables se utilizan para describir hechos y reglas generales. Los nombres de las variables deben comenzar con letra mayúscula o con el carácter ( ). Existe una variable especial, la variable anónima o blanca. Esta variable se utiliza de la misma manera que las demás variables pero nunca toma ningún valor. 1.5 La estructura de un programa en PDC-PROLOG La mayoría de los programas en PDC-Prolog están organizados en cuatro secciones principales: domains predicates goal clauses En la sección domains se declaran los argumentos que utilizan los predicados. Si son dominios predefinidos no es necesario declararlos. 6

En predicates se declaran todos los predicados no predefinidos que se utilizarán en la sección clauses. Los hechos y las reglas se escriben en la sección clauses. Como nuestro Prolog puede usarse de forma interactiva, es frecuente ejecutar un programa y luego esperar a que se nos pregunte el objetivo. La sección goal nos permite ejecutar los programas de una forma no interactiva, y por tanto, buscará la solución deseada tan pronto como se ejecute el programa. 1.6 Ejercicios propuestos 1.6.1 Vegetal o animal? 1. Sin utilizar el ordenador descubre y explica los errores que hay en el siguiente programa escrito en PROLOG: domains cosa == symbol predicates animal(cosa) vegetal(cosa) clauses animal(vaca). animal(murcielago). vegetal(secoya). animal(iguana). vegetal(helecho). computadora(ibm pc). computadora(apple macintosh) 2. Escribe el programa anterior corregido. 3. Cuando ejecutes el programa, verás aparecer la ventana de diálogo; observa el mensaje goal y pregunta los siguientes objetivos: (i) El murciélago es animal? (ii) El murciélago es vegetal? (iii) El murciélago es vegetal y animal? (iv) El murciélago es vegetal o animal? (v) Escribe todos los animales. 4. Introduce en el programa la siguiente sección y observa el resultado 7

goal animal(x),write(x). 1.6.2 Parentescos Utilizando los predicados varón, mujer, padre, madre y progenitor, escribe reglas que expresen las siguientes relaciones: (i) ser abuela de(x,y) (ii) ser nieto de(x,y) (iii) ser hermano de(x,y) (iv) ser sobrina de(x,y) Plasma lo anterior en un programa PROLOG y ejecútalo varias veces para comprobar que es correcto. 1.6.3 Una agencia matrimonial Una agencia matrimonial tiene un fichero de candidatos al matrimonio organizado según las declaraciones siguientes: hombre(n,a,c,e) mujer(n,a,c,e) donde N es el nombre de un hombre o una mujer, A su altura (alta, media, baja), C el color de su cabello (rubio, castaño, pelirrojo, negro) y E su edad (joven, adulta, madura). gusta(n,m,l,s) indica que a la persona N le gusta el género de música M (clásica, pop, jazz), el género de literatura L (aventura, ciencia ficción, policíaca ), y practica el deporte S (tenis, natación, jogging). busca(n,a,c,e) expresa que la persona N busca una pareja de altura A, con cabello de color C y edad E. Se considera que dos personas X e Y de sexos diferentes son adecuadas si X conviene a Y e Y conviene a X. Se dice que X conviene a Y, si X conviene físicamente a Y (la altura, edad, y cabello de X son las que busca Y), y si además, los gustos de X e Y en música, literatura y deporte coinciden. 8

(i) Escribe un conjunto de declaraciones que representen el fichero de candidatos. (ii) Escribe las reglas: conviene fisicamente(x,y) tiene igual gusto(x,y) (iii) Haz deducir al programa qué parejas son adecuadas. 1.6.4 Una agencia de viajes Una agencia de viajes propone a sus clientes viajes de una semana a Roma, Londres o Túnez. El catálogo de la agencia contiene, para cada destino, el precio del transporte y el precio de una semana de estancia que varía según el destino y el nivel de comodidad elegidos: hotel, hostal o camping. (i) Escribe el conjunto de declaraciones que describen este catálogo (los precios se dejan a tu elección). (ii) Expresa la relación viaje(c,s,h,p) que se interpreta como: el viaje a la ciudad c durante s semanas con estancia en h cuesta p pesetas. (iii) Completa con viaje económico(c,s,h,p,p max) que expresa que el coste p es menor que p max pesetas. 9