Apreda prolog

Solo disponible en BuenasTareas
  • Páginas : 9 (2178 palabras )
  • Descarga(s) : 10
  • Publicado : 25 de julio de 2010
Leer documento completo
Vista previa del texto
Aprenda

en N Diapositivas Programación Lógica
Por: Domínguez Geniz Amalio Javier < ajdgeniz@hotmail.com > http://ajdgeniz.wordpress.com
Tecnológico de Estudios Superiores de Chalco

Febrero 2009

Geniz v. 1.0

1

PROgramming in LOGic
Prolog es un lenguaje declarativo basado en Reglas y Hechos de lógica, cuya información es retribuido en forma de consultas. Originado en Europa aprincipios de los 70’s por Alain Colmerauer . Para realizar los programas, se debe pensar declarativamente.

REGLAS PROLOG CONSULTAS

HECHOS

Febrero 2009

Geniz v. 1.0

2

PROgramming in LOGic
HECHOS
 marco es maestro  geniz es un programador piedra (robert). predicado sujeto Fin de afirmacion

Notación En Prolog
 maestro (marco).  programador(geniz).

Para definir un hechoen Prolog, deberá tomar en cuenta que nuestra oración (hecho) debe llevar el formato predicado(sujeto).

Febrero 2009

Geniz v. 1.0

3

PROgramming in LOGic
SINTAXIS
 Las variables deben escribirse con Mayúsculas  Las constantes se escriben con Minúsculas  Las afirmaciones se terminan con . (punto)  No se pueden dejar espacios entre los nombres de las constantes, para ello utilice elguion bajo (_)  Los comentarios empiezan con %

Operadores
 Conjunción  , (coma) Disyunción  ;  Regla o Condición  :Fin de la condición  .

Febrero 2009

Geniz v. 1.0

4

PROgramming in LOGic
Ejemplo en SWI-Prolog Editor
Ahora basándonos en lo ya aprendido ejecutaremos nuestro primer ejemplo en el editor SWI-Prolog. Para ello teclee lo siguiente: programador(geniz).maestro(marco). piedra(robert). •Ahora vaya al menu Iniciar y Seleccione “Consultar todo” •Ahora en el panel de Prolog Teclee las consultas, ejemplo: maestro(marco).

¿marco es maestro?

Febrero 2009

Geniz v. 1.0 Interprete

Prolog y área de consulta

5

PROgramming in LOGic
Ejemplo en SWI-Prolog Editor utilizando la conjunción
Ahora utilizaremos variables y la conjunción para realizarconsultas. Para ello teclee lo siguiente: sistema_operativo(linux). sistema_operativo(windows). sistema_operativo(solaris). sistema_operativo(mac). microsoft(visual_studio,expression_studio). sun(netbeans, sun_studio). borland(jbuilder,delphi). canonical(ubuntu,xubuntu).

Febrero 2009

Geniz v. 1.0

6

PROgramming in LOGic
REGLAS
Una regla es una sentencia condicional, por ejemplo: Basede conocimiento Regla 1: Si esta contento entonces escucha musica Regla 2: Si tiene radio entonces escucha musica Regla 3: Si escucha musica y tiene una guitarra entonces toca la guitarra Hecho 1: Tiene una guitarra Hecho 2: Esta contento Consulta > Esta tocando la guitarra ? escucha_musica :- esta_contento. % Regla 1 escucha_musica :- tiene_radio. % Regla 2 toca_la_guitarra :- escucha_musica,tiene_guitarra. % Regla 3 tiene_guitarra. % Hecho 1 esta_contento. % Hecho 2
Febrero 2009 Geniz v. 1.0 7

INPUT & OUTPUT
WRITE
La orden WRITE imprime en pantalla la cadena de caracteres en código ASCI por ejemplo: ?- write (“Hola Mundo”);

La manera de hacer que la cadena aparezca de manera normal, es imprimiéndola con una constante, por ejemplo: ?- write(hola_mundo).

NOTA: Recuerde quelas constantes se definen con minúsculas, además que solo deberá utilizar la orden write directamente en el interprete.
Febrero 2009 Geniz v. 1.0 8

INPUT & OUTPUT
write_canonical
La orden write_canonical imprime en pantalla un flujo de salida utilizando la notación de un prefijo y los paréntesis, ejemplo:

writeq, print y display
Sirven de la misma manera que write

tab(N): escribe Nespacios en blanco nl: escribe un salto de línea
Febrero 2009 Geniz v. 1.0 9

INPUT & OUTPUT
READ
La orden read sirve para almacenar el valor a una variable, ejemplo:
?- read(variable);

NOTA: Recuerde que las variables de definen en letras mayúsculas y también no escriba su nombre con la inicial mayúsculas ya que Prolog lo tomara como otra constante .
Febrero 2009 Geniz v. 1.0 10...
tracking img