progress-4gl
Werken met getallen
Zoeken…
Invoering
Progress ABL ondersteunt drie getalnotaties: 32- en 64-bits gehele getallen en floats.
operators
Progress ondersteunt +/- als operator. Ze kunnen niet worden overbelast. Divisie geeft altijd een decimaal. Als een van de getallen in een berekening een decimaal is, wordt een decimaal geretourneerd. Anders een INTEGER
of INT64
.
Er is geen +=
of ++
operator. Om een variabele te verhogen of te verlagen, moet u deze aan zichzelf plus of min iets toewijzen. Dus om 1 toe te voegen aan een variabele doe je: 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
Meer wiskundige functies
EXP - Retourneert het resultaat van het verhogen van een getal naar een macht.
EXP (basis, exponent)
MESSAGE EXP(10, 2) VIEW-AS ALERT-BOX. // Messages 100
SQRT - Retourneert de vierkantswortel van een getal.
SQRT (nummer)
MESSAGE "The square root of 256 is " SQRT(256) VIEW-AS ALERT-BOX. // Messages 16
MODULO - Bepaalt de rest na deling.
expressie MODULO basis
DISPLAY 52 MODULO 12. //Displays 4
RONDE - Rondt een decimale uitdrukking af op een opgegeven aantal plaatsen na de decimale punt.
RONDE (aantal, precisie)
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 Kapt een decimale uitdrukking af tot een gespecificeerd aantal decimalen, waarbij een decimale waarde wordt geretourneerd.
TRUNCATE (aantal, plaatsen)
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
ABSOLUTE - Retourneert de absolute waarde van een getal
DISPLAY ABS(10 - 12). //Displays 2
DISPLAY ABS(-2) = ABS(2). //Displays yes
MINIMUM en MAXIMUM - geeft het kleinste en grootste getal terug
MINIMUM (nummer 1, nummer 2, ... nummer)
MAXIMAAL (nummer 1, nummer 2, ... nummer)
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
Getallen vergelijken
Er zijn standaardfuncties ingebouwd voor het vergelijken van gelijkheid, ongelijkheid enz.
Naam | Symbool | Alternatief | Voorbeeld |
---|---|---|---|
Gelijk | = | EQ | i = j |
Niet gelijk | <> | NE | i <> j |
Minder dan | < | LT | i <j |
Minder dan of gelijk | <= | LE | i <= j |
Groter dan | > = | GT | i> j |
Groter dan of gelijk aan | ≥ = | GE | i> = j |
Het symbool kan worden uitgewisseld met het alternatief en vice versa. var1 <> var2
is dus hetzelfde als var1 NE var2
.
U kunt een float vergelijken met een geheel getal, maar u kunt bijvoorbeeld een datum niet vergelijken met een geheel getal.
Willekeurig nummer generator
RANDOM - genereert een willekeurig getal
RANDOM (laag, hoog)
Genereert een pseudo willekeurig geheel getal tussen laag en hoog
// 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.