Buscar..


Introducción

Progress ABL admite tres formatos de números: enteros y flotantes de 32 y 64 bits.

Los operadores

Progress soporta + / - * como operadores. No pueden ser sobrecargados. La división siempre devuelve un decimal. Si alguno de los números en un cálculo es un decimal, se devolverá un decimal. De lo contrario un INTEGER o INT64 .

No hay operador += o ++ . Para aumentar o disminuir una variable tienes que asignarla a sí misma más o menos algo. Entonces, para agregar 1 a una variable haces: i = i + 1.

DEFINE VARIABLE i AS INTEGER     NO-UNDO.
DEFINE VARIABLE j AS INTEGER     NO-UNDO.

i = 3.
j = 2.

DISPLAY i + j. // 3 + 2 = 5

DISPLAY i - j. // 3 - 2 = 1

DISPLAY i / j. // 3 / 2 = 1.5

DISPLAY INTEGER(i / j). //Integer(3/2) = 2.

DISPLAY i * j. //3 x 2 = 6

Mas funciones matematicas

EXP - Devuelve el resultado de elevar un número a una potencia.

EXP (base, exponente)

MESSAGE EXP(10, 2) VIEW-AS ALERT-BOX. // Messages 100

SQRT - Devuelve la raíz cuadrada de un número.

SQRT (número)

MESSAGE "The square root of 256 is " SQRT(256) VIEW-AS ALERT-BOX. // Messages 16

MODULO - Determina el resto después de la división.

expresion MODULO base

DISPLAY 52 MODULO 12. //Displays 4

REDONDO : redondea una expresión decimal a un número específico de lugares después del punto decimal.

RONDA (número, precisión)

DISPLAY ROUND(67.12345, 6) FORMAT "99.99999". // 67.12345
DISPLAY ROUND(67.12345, 5) FORMAT "99.99999". // 67.12345
DISPLAY ROUND(67.12345, 4) FORMAT "99.99999". // 67.12350
DISPLAY ROUND(67.12345, 3) FORMAT "99.99999". // 67.12300
DISPLAY ROUND(67.12345, 2) FORMAT "99.99999". // 67.12000
DISPLAY ROUND(67.12345, 1) FORMAT "99.99999". // 67.10000
DISPLAY ROUND(67.12345, 0) FORMAT "99.99999". // 67.00000

TRUNCATE Trunca una expresión decimal a un número especificado de posiciones decimales, devolviendo un valor decimal.

TRUNCATE (número, lugares)

DISPLAY TRUNCATE(67.12345, 6) FORMAT "99.99999". // 67.12345
DISPLAY TRUNCATE(67.12345, 5) FORMAT "99.99999". // 67.12345
DISPLAY TRUNCATE(67.12345, 4) FORMAT "99.99999". // 67.12340
DISPLAY TRUNCATE(67.12345, 3) FORMAT "99.99999". // 67.12300
DISPLAY TRUNCATE(67.12345, 2) FORMAT "99.99999". // 67.12000
DISPLAY TRUNCATE(67.12345, 1) FORMAT "99.99999". // 67.10000
DISPLAY TRUNCATE(67.12345, 0) FORMAT "99.99999". // 67.00000

ABSOLUTO - Devuelve el valor absoluto de un número

DISPLAY ABS(10 - 12). //Displays 2
DISPLAY ABS(-2) = ABS(2). //Displays yes

MÍNIMO y MÁXIMO : devuelve el número más pequeño y más grande

MÍNIMO (número1, número2, ... número)

MÁXIMO (número1, número2, ... número)

DEFINE VARIABLE i AS INTEGER     NO-UNDO.
DEFINE VARIABLE j AS INTEGER     NO-UNDO.
DEFINE VARIABLE k AS INTEGER     NO-UNDO.

i = 40.
j = 45.
k = 56.

DISPLAY MINIMUM(i, j, k) MAXIMUM(i, j, k). // Displays 40 and 56

Comparando numeros

Hay funciones estándar integradas para comparar igualdad, desigualdad, etc.

Nombre Símbolo Alternativa Ejemplo
Igual = Ecualizador i = j
No es igual <> Nebraska i <> j
Menos que < LT i <j
menor o igual <= LE i <= j
Mas grande que > = GT i> j
Mayor que o igual ≥ = GE i> = j

El símbolo se puede intercambiar con la alternativa y viceversa. Entonces var1 <> var2 es lo mismo que var1 NE var2 .

Puede comparar un flotante con un entero, pero no puede comparar, por ejemplo, una fecha con un entero.

Generador de números aleatorios

ALEATORIO - genera un número aleatorio

ALEATORIO (bajo, alto)

Genera un entero pseudoaleatorio entre bajo y alto

// Example that generates 20 random numbers between 1 and 20 (1 and 20 included)
DEFINE VARIABLE i AS INTEGER     NO-UNDO.

DO i = 1 TO 20.
    DISPLAY i RANDOM(1, 20).
    PAUSE.
END.


Modified text is an extract of the original Stack Overflow Documentation
Licenciado bajo CC BY-SA 3.0
No afiliado a Stack Overflow