Loading presentation...

Present Remotely

Send the link below via email or IM

Copy

Present to your audience

Start remote presentation

  • Invited audience members will follow you as you navigate and present
  • People invited to a presentation do not need a Prezi account
  • This link expires 10 minutes after you close the presentation
  • A maximum of 30 users can follow your presentation
  • Learn more about this feature in our knowledge base article

Do you really want to delete this prezi?

Neither you, nor the coeditors you shared it with will be able to recover it again.

DeleteCancel

Make your likes visible on Facebook?

Connect your Facebook account to Prezi and let your likes appear on your timeline.
You can change this under Settings & Account at any time.

No, thanks

PROGRAMACIÓN LÓGICA Y FUNCIONAL

No description
by

Gabriela Luevano

on 9 December 2015

Comments (0)

Please log in to add your comment.

Report abuse

Transcript of PROGRAMACIÓN LÓGICA Y FUNCIONAL

Se puede establecer que el lenguaje PROLOG está orientado a la Inteligencia Artificial, usando la programación lógica.

También utiliza pocos comandos en comparación con otros lenguajes de programación. Sólo hemos comenzado a explorar el poder que viene de la modelización de cálculo dentro de la lógica de predicados.
Software (Programación Lógica)
• SWI-Prolog
Entorno de programación Prolog (Windows/Linux/OSX)
http://www.swi-prolog.org/
NUMÉRICOS
En PROLOG los objetos numéricos pueden corresponder a tipos integer o float de C. Para realizar operaciones numéricas, se tiene el predicado is, que se comporta como una asignación en un lenguaje imperativo. Así, el objetivo X is <expresión> será verdadero cuando X unifique con el resultado numérico de evaluar <expresión>.
LISTAS
La representación de hechos simples no es lo común en la clasificación de elementos, sino que se agrupan los elementos de un mismo tipo en una lista.
Las listas son colecciones de elementos en PROLOG. Una lista se divide en dos partes:
• Cabeza. Es el primer elemento de la lista.
• Cola. Es una lista con el resto de los elementos de la lista. La cabeza y la cola de una lista se separan con el símbolo "|".
ÁRBOLES
Es más fácil entender la forma de una estructura complicada si la escribimos como un árbol en el que el nombre es un nodo y los componentes son las ramas.
EJERCICIOS
Ejercicio 1 - Expresiones
• Realizar un ejemplo de cada expresión.
Ejercicio 2 - Numéricos.
• Dado 3 números, realizar su ordenamiento de mayor a menor
Ejercicio 3 - Listas
• Concatena listas.
Ejercicio 4 - Arboles
• Convertir la siguiente lista en árbol
pam(bob(ann,pat(jim),tom(bob,liz)
PROGRAMACIÓN LÓGICA Y FUNCIONAL

INTRODUCCIÓN
La programación lógica es un paradigma de los lenguajes de programación en el cual los programas se consideran como una serie de aserciones lógicas. De esta forma, el conocimiento se representa mediante reglas, tratándose de sistemas declarativos.
Una representación declarativa es aquélla en la que el conocimiento está especificado, pero en la que la manera en que dicho conocimiento debe ser usado no viene dado. El más popular de los sistemas de programación lógica es el PROLOG.
REPRESENTACIÓN DECLARATIVA
PROLOG cuenta con operadores para la unificación y comparación, sea
con evaluación o sea simbólica, como los siguientes:

• X is Y %unificación con evaluación.
• X = Y %unificación simbólica
• X=:=Y %comparación con evaluación
• X == Y %comparación simbólica.
?- X is 3+5.
X = 8
?- X = 3+5.
X = 3+5
?- 3+5 =:= 2+6.
yes
?- 3+5 == 2+6.
no
?- 3+5 == 3+5.
yes
EJEMPLO
EJEMPLO
Si definimos:
masuno(X, Y): - Y is X+1.
xmasuno (X, Y): - Y = X+1.
Observaremos el siguiente comportamiento:
?- masuno (,5).
Yes
?- xmasuno(4,5)
No
EJEMPLO
libro (titulo (prolog), autores (clocksin, mellish))
SOLUCIÓN EJERCICIO 1
?- X is 3+5.
X = 8

?- X = 3+5.
X = 3+5

?- 3+5 =:= 2+6.
yes

?- 3+5 == 2+6.
no

?- 3+5 == 3+5.
yes

SOLUCIÓN EJERCICIO 2
SOLUCIÓN EJERCICIO 3
SOLUCIÓN EJERCICIO 4
ordenar(X,[A,B,C]) :-
member(A,X),member(B,X),member(C,X),
A =\= B, A =\= C, B =\= C,
A > B,
B > C.
concatenar([],L,L).
concatenar([X|L1],L2,[X|L3]):-concatenar(L1,L2,L3).

?- concatenar([1,2],[3,4],R).
R = [1, 2, 3, 4].
CONCLUSIÓN
BIBLIOGRAFÍA
“The Art of Prolog” (2ed) eon Sterling y Ehud Shapiro MIT Press, 1994
“Programación en Prolog” (2ed) William F. Clocksin y Chris S. Mellish Gustavo Gili, 1993
“Prolog Programming for Artificial Intelligence” (3ed) Ivan Bratko Addison-Wesley, 2000
“Clause and Effect” William F. Clocksin
“Prolog Programming: A First Course” Paul Brna
“Logic, Programming and Prolog” (2ed) Ulf Nilsson y Jan Maluszynski Setup SWI-Prolog, Youtube, Abel Sabour, link youtube.com/watch?v=f8LxLkDK_RI
INSTITUTO TECNOLÓGICO SUPERIOR DE JEREZ

MATERIA: PRORAMACIÓN LÓGICA Y FUNCIONAL
TEMA: PROGRAMACIÓN LÓGICA CON NUMEROS, LISTAS Y ÁRBOLES
GRUPO: D
NO. DE CONTROL: 11070005
PROFESOR: I.S.C. MARGARITA TRETO GARCÍA
ALUMNA: GABRIELA LUEVANO PUENTES
CARRERA: INGENIERÍA EN SISTEMAS COMPUTACIONALES.
JEREZ DICIEMBRE DEL 2014
Full transcript