Arithmetische operatoren:
** machtsverheffing
* vermenigvuldiging
/ deling
+ optelling
- aftrekking
Logische operatoren:
.NOT. logische ontkenning
.AND. logische en
.OR. logische of
.EQV. logische equivalent
.NEQV. logische niet equivalent
De logische operaties zijn als volgt gedefinieerd:
A B .NOT.A A.AND.B A.OR.B A.EQV.B A.NEQV.B
.FALSE. .FALSE. .TRUE. .FALSE. .FALSE. .TRUE. .FALSE.
.FALSE. .TRUE. .TRUE. .FALSE. .TRUE. .FALSE. .TRUE.
.TRUE. .FALSE. .FALSE. .FALSE. .TRUE. .FALSE. .TRUE.
.TRUE. .TRUE. .FALSE. .TRUE. .TRUE. .TRUE. .FALSE.
Relationele operatoren:
.GT. greater than
.GE. greater or equal
.LT. less than
.LE. less or equal
.EQ. equal to
.NE. not equal to
Er is slechts één character operatie, het aan elkaar plakken
van twee character variabelen, of concatenatie:
// concatenatie
De operandi in een arithmetische expressie zijn getallen of constanten
(INTEGER, REAL, DOUBLE PRECISION of COMPLEX) en het
resultaat is een getal. Het type van het resultaat hangt van tamelijk
ingewikkelde regels af, die we niet in extenso zullen behandelen.
Wél willen we er op wijzen dat de deling van twee integers
weer een integer getal oplevert, zodat in het algemeen het
antwoord fout is (tenzij de tweede operand een deler is van de eerste).
Dus bijvoorbeeld:
0/3 --> 0
1/3 --> 0
2/3 --> 0
3/3 --> 1
4/3 --> 1
5/3 --> 1
6/3 --> 2
In het algemeen zullen we eerst reals maken van integers voor we
ze delen, bijv. met de functie REAL:
REAL(2)/REAL(3) --> 0.666666
REAL(2/3) --> 0.000000
REAL(2)/3 --> 0.666666
2/REAL(3) --> 0.666666
Het resultaat van een logische en een relationele
expressie is waar of onwaar, en het resultaat van een character
expressie is uiteraard van het type character.
In veel gevallen hangt het resultaat van een expressie ook
af van de volgorde van de operaties. Er geldt het regeltje
Meneer Van Dalen Wacht Op Antwoord, maar in het algemeen is het
aan te raden in geval van twijfel haakjes te zetten.
Voorbeelden:
(A+B) / C+D is: ((A+B)/C) + D en niet: (A+B) / (C+D)
A/B **2 is: A / (B**2) en niet: (A/B)**2