Professional Documents
Culture Documents
Agenda
Operadores aritmticos
Aplicaciones
Predicado fail, cut.
Funciones matematicas
Laboratorios
Ejercicios Propuestos .
Operadores aritmticos
La programacin lgica no tiene como objeto abordar
problemas de clculo numrico, pero a veces son necesarias
ciertas operaciones elementales, como contar el nmero de
elementos de una lista, multiplicar por una constante, etc. En
principio, las operaciones aritmticas pueden expresarse
mediante relaciones.
CONSTANTS
numero = 1000
expresion = 1000+1
GOAL
A=numero,
B=expresion, write(A), write(B), nl.
principal.
Y9 = trunc(16.5),
writef("Truncar 16.5 a la parte entera = %f",Y9),/*16*/nl,
Y10 = abs(-15),
writef("Valor absoluto de -15 = %d",Y10),/*15*/nl,
readln(_).
Operaciones varias
domains
nro = integer
predicates
principal
leer(nro)
sumar(nro,nro,nro,nro)
multiplicar(nro,nro,nro,nro)
promedio(nro,nro,nro,nro)
mostrar(nro,nro,nro)
clauses
%%%%%% R E G L A S %%%%%
principal:-write("Suma de Numeros"),nl,
write("============="),nl,nl,
leer(A),leer(B), leer(C),
sumar(A,B,C,S),
multiplicar(A,B,C,M),
promedio(A,B,C,P),
mostrar(S,M,P).
Nota:
Note que esto realiza la suma de dos nmeros, readint , permite
ingresar enteros y readln que ingresacadenas, tambin existe readreal
para nmeros reales, ntese tambin que se esta utilizando el predicado
main.
Cut 0 corte, es un objetivo que siempre cumple.
Fail, es un objetivo que siempre falla. til para provocar backtracking
Aritmtica en Prolog
Operadores aritmticos:
Operadores relacionales
Expresin aritmtica
Una expresin aritmtica es un trmino construido con nmeros,
variables y funtores que representan funciones aritmticas. Slo se
permiten ciertos funtores en estas expresiones. Algunos de ellos son los
siguientes:
E1+ E2 suma
E1 - E2 diferencia
E1* E2 producto
E1 / E2 cociente
E1 // E2 cociente entero
-E opuesto
E1 mod E2 mdulo, o resto de la divisin
^ potencia
En Prolog se utilizan una serie de operadores aritmticos y relacionales
que permiten aumentar la semntica de la base de conocimiento de un
programa determinado.
Expresin aritmtica
Ingresar 2 nmeros y calcular el mayor y menor nmero.
domains
i,j=integer
predicates
mayor(i,j)
main
clauses
mayor(X,Y):-X>Y,write(X,":es mayor que: ",Y),nl,!.
mayor(X,Y):-X<Y,write(X,":es menor que: ",Y),nl,!.
main:- write("Ingrese numero1:"), readint(X),
write("Ingrese numero2:"), readint(Y),
mayor(X,Y).
Goal
main.
Comparacin aritmtica
Laboratorio
main
principal
fail
fallar
cut
cortar, corte, !
backtracking retroceso
21