exprecion aritmetica
DESCRIPTION
swTRANSCRIPT
Una expresión aritmética se puede considerar como una estructura.
Ejemplo
2 * 10 + 1 es equivalente a + (* (2,10), 1)
Evaluación de expresiones
Prolog utiliza la palabra clave “is” para evaluar una expresión aritmética.
Ejemplo
?- X is 2 * 10 + 1.X = 21
?- X is +(*(2,3),1).X = 7.Observación
Si una variable tiene un valor entonces no se le puede asignar un valor nuevo.
Ejemplo
?- X is 1, A is 2 * X, X is A + 1.false.
?- X is 1, A is 2 * X, Y is A + 1.X = 1,A = 2,Y = 3.
Operadores prefijos
+, -
Ejemplos
?- X is + 9.X = 9
?- X is -12.X = -12
OperadoresLos operadores de Prolog están divididos en dos clases: aritméticos y relacionales.
Los operadores aritméticos incluyen los símbolos para suma, resta, multiplicación y división . En Prolog, si dos enteros son sumados, restados o multiplicados, el resultado será un entero. Siempre que uno de los operandos, en cualquiera de estas operaciones sea un número real, el resultado siempre será un real. El resultado de una división, siempre que los operandos sean enteros o reales, será siempre real.
ARITMÉTICOS
Todas las versiones de Prolog soportan los siguientes operadores aritméticos, listados en el orden de prioridad de ejecución.
+ --> SUMA - --> RESTA * --> MULTIPLICACIÓN / --> DIVISIÓN // --> DIVISION ENTERA MOD --> RESIDUO ^ --> POTENCIA
Los paréntesis se pueden utilizar para dar preferencia de ejecución en una expresión compuesta. Prolog utiliza la precedencia de operadores con la regla de la mano izquierda.
A continuación se muestran algunas operaciones más complejas que PROLOG provee:
OPERACIÓN DESCRIPCIÓNSqrt(X) Calcula la raíz cuadrada de la variablelog(X) Calcula el logaritmo de Xln(X) Calcula el logaritmo natural de Xabs(B) Regresa el valor absoluto de Bsin(T) Seno de Tcos(A) Coseno de Atan(C) Tangente de C
RELACIONALES
Prolog soporta los siguientes operadores relacionales:
= --> IGUAL QUE > --> MAYOR QUE >= --> MAYOR O IGUAL QUE >= --> MENOR O IGUAL QUE <> --> DESIGUAL QUE =/= --> DIFERENTE QUE is --> EVALUADOR DE EXPRESIÓN seed --> GENERADOR DE NÚMEROS ALEATORIOS
Cuando dos objetos que son símbolos o cadenas de caracteres son comparados, los caracteres son convertidos a su equivalente ASCII. El valor de cada carácter es examinado a partir del operador relacional, de izquierda a derecha.