You are on page 1of 3

CONSTRUCCIONES ARITMETICAS En Prolog podemos disponer de una serie de operadores relacionales y aritmticos que nos permitirn aumentar la semntica

de nuestra base de conocimiento utilizando una notacin similar a la que ya estamos familiarizados de lgebra bsica. Esto se logra mediante el predicado incorporado es / 2, que est predefinido como un operador fijo y por lo tanto se escribe entre sus dos argumentos. La evaluacin de la finalidad X es -6,5 har X en obligarse al nmero -6,5 y el objetivo de tener xito. El segundo argumento puede ser un nmero o una expresin aritmtica, por ejemplo X es 6 * Y + Z-3.2 + P, Q / 4 (* denota multiplicacin). Operadores aritmticos / , * , - ,+ // : cociente de la divisin (divisin entera) mod : resto de la divisin (mdulo) ^ : potencia (primer operando elevado a segundo operando) Operadores relacionales =>,=<,>,< Operadores de igualdad = :unificacin. Es verdadero si ambos operandos unifican, en cuyo caso se realiza la unificacin. \= :no unificacin. Es verdadero si ambos operandos NO unifican, en cuyo caso NO se realiza la unificacin. is :evaluador. Se utiliza para evaluar las expresiones aritmticas y funciones. Evala la parte de la derecha y unifica a la parte izquierda. Si no se usa el is, las expresiones se mantienen en su forma original ( X=3+3 en lugar de X=6 ). = = :significa es exactamente igual que. Compara trminos sin evaluar expresiones.(no unifica). Ambos trminos tienen que estar instanciados. \= = :es falso cuando dos trminos son exactamente iguales. (no unifica). =:= :mismo valor. Evala los dos operandos, a derecha y a izquierda, y es verdadero si los valores obtenidos son iguales. (no unifica). Todas las variables que aparecen en una expresin aritmtica debe estar ya consolidadas (resultado de la evaluacin de un objetivo anterior) y sus valores deben ser numricos. De esta forma el objetivo siempre tendr xito y la variable que forma el primer argumento ser vinculado al valor de la expresin aritmtica. Si no, obtenemos error como respuesta.

Ejemplo: ? - X es 10,5 4,7 * 2. X = 19,9 ? - Y es 10, Z es Y+1. Y = 10, Z = 11 Smbolos tales como + - * / en las expresiones aritmticas son un tipo especial de operador fijo se conoce como operadores aritmticos. A diferencia de los operadores utilizados en otras partes de Prolog no son predicados pero las funciones, devuelven un valor numrico. As como los nmeros, variables y operadores, expresiones aritmticas pueden incluir funciones aritmticas, escrito con sus argumentos entre parntesis (es decir, no como los operadores). Al igual que los operadores aritmticos estos valores de retorno numricos, por ejemplo, para encontrar la raz cuadrada de 36: ? - X es sqrt (36). X=6 El operador aritmtico - puede ser utilizado no slo como un operador fijo binario para denotar la diferencia de dos valores numricos, por ejemplo, X-6, tambin como un prefijo unario operador para referirse a la negativa de un valor numrico, por ejemplo, ? - X es 10, Y es-X-2. X = 10, Y = -12 La siguiente tabla muestra algunos de los operadores aritmticos y funciones aritmticas disponibles en Prolog. X+Y X-Y X*Y X/Y X//Y X^Y -X abs (X) sin (X) cos (X) max (X, Y) sqrt (X) la suma de X e Y la diferencia de X e Y el producto de X e Y el cociente de X e Y el "cociente entero 'de X e Y (el resultado se trunca a los entero ms cercano entre ste y el cero) X a la potencia de Y el negativo de X el valor absoluto de X en el seno de X (por X medido en grados) el coseno de X (por X medido en grados) el ms grande de X e Y la raz cuadrada de X

Ejemplos: ?- X is 3+4. X=7 Yes ?- X+Y = 3+5. X=3, Y=5 Yes ?- X = 3+5. X=3+5 Yes ?- X is 8, X = 3+5. No 3 = = 1+2. No 3*3 =:= 9. Yes. ?- X*Y = 9*a. X=9,Y=a Yes ?- X is 30,Y is 5,Z is X+Y+X*Y+sin(X). X = 30 , Y=5, Z = 185.5 ? - 10 es de 7 13 a 11 9. no

?- X is 8, X is 3+5. X=8 Yes

A pesar de que el predicado se utiliza normalmente en la forma descrita aqu, los primeros argumento tambin puede ser un nmero o una variable vinculado con un valor numrico. en este caso, los valores numricos de los dos argumentos se calculan. El objetivo tiene xito si estos son iguales. Si no, no.

You might also like