FORTRAN: 1. FORTRAN

HANDLEIDING FORTRAN

HOOFDSTUK 1: FORTRAN


1.6 Expressies

FORTRAN kent vier soorten expressies: arithmetische, logische, character and relationele expressies. In deze expressies komen de volgende operatoren voor.

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


Updated 30-jan-1996, pfk