next up previous contents
Nächste Seite: Logische Anweisungen Aufwärts: Logische Ausdrücke und Anweisungen Vorherige Seite: Logische Ausdrücke und Anweisungen   Inhalt

Logische Ausdrücke

Logische Berechnungen werden mit logischen Ausdrücken formuliert, bei deren Auswertung sich ein Ergebnis vom logischen Typ mit dem Wert $wahr $ oder $falsch$ ergibt. Jede logische Konstante, Variable, jeder Vergleichsausdruck und jeder Aufruf einer logischen Funktion ist ein einfacher logischer Ausdruck.

Kompliziertere logische Ausdrücke werden gebildet durch Verknüpfung logischer Operanden mit logischen Operatoren und Klammern.

Logische Operatoren sind

Operator Name Gebrauch
.NOT. Negation .NOT.X
.AND. Konjunktion X1.AND.X2
.OR. Disjunktion X1.OR.X2
.EQV. Äquivalenz X1.EQV.X2
.NEQV. Antivalenz X1.NEQV.X2

mit der folgenden Wertetabelle:

X1 X2 .NOT.X2 X1.AND.X2 X1.OR.X2 X1.EQV.X2 X1.NEQV.X2
.TRUE. .TRUE. .FALSE. .TRUE. .TRUE. .TRUE. .FALSE.
.TRUE. .FALSE. .TRUE. .FALSE. .TRUE. .FALSE. .TRUE.
.FALSE. .TRUE. .FALSE. .FALSE. .TRUE. .FALSE. .TRUE.
.FALSE. .FALSE. .TRUE. .FALSE. .FALSE. .TRUE. .FALSE.

In einem Vergleichsausdruck können die Werte zweier arithmetischer, zweier logischer oder zweier Zeichenausdrücke verglichen werden, nicht jedoch z.B. der Wert eines arithmetischen mit dem eines Zeichenausdrucks. Für Vergleichsoperationen mit REAL-Größen sei auf Abschnitt 4.4 hingewiesen. Vergleichsausdrücke treten nur in logischen Ausdrücken auf, ihr Wert ist wahr oder falsch.

Es gibt folgende Vergleichsoperatoren:

Operator Name Gebrauch Bedeutung
.LT.   X1.LT.X2  
< less than X1 < X2 Ist X1 kleiner als X2?
.LE.   X1.LE.X2  
<= less or equal X1 <= X2 Ist X1 kleiner oder gleich X2?
.EQ.   X1.EQ.X2  
== equal X1 == X2 Ist X1 gleich X2?
.NE.   X1.NE.X2  
/= not equal X1 /= X2 Ist X1 ungleich X2?
.GT.   X1.GT.X2  
> greater than X1 > X2 Ist X1 größer als X2?
.GE.   X1.GE.X2  
>= greater or equal X1 >= X2 Ist X1 größer oder gleich X2?

Die Punkte bei den logischen und Vergleichsoperatoren sind zwingender Bestandteil. Die oben tabellierten Vergleichsoperatoren gelten nur für numerische Typen. Logische Typen und Zeichenketten lassen sich nur auf (Un-)Gleichheit überprüfen. Weitere, auf Zeichenketten beschränkte Vergleichsoperatoren sind im Abschnitt 4.2.7 erwähnt. Die Reihenfolge der Auswertung von (hier numerischen) Ausdrücken wird normalerweise durch Klammern vorgegeben. Generell gilt folgende Rangfolge:


		 0. 		 Klammern 

1. Funktionsaufruf
2. **
3. Vorzeichenoperationen
4. * und /
5. + und -
6. Vergleichsoperationen
7. .NOT.
8. .AND.
9. .OR.
10. .EQV. und .NEQV.

Stehen gleichrangige Operationen nebeneinander, so wird von links nach rechts interpretiert (Ausnahme: Exponentiation!).

Danach ist der Ausdruck (mit REAL P,G und LOGICAL L,K)

-P**2.GE.G.AND.L.OR..NOT.K

gleichbedeutend mit

(((-(P**2)).GE.G).AND.L).OR.(.NOT.K)

Es soll hier nochmals betont werden, daß die Verwendung von Klammern, auch wenn sie überflüssig sind, die Verständlichkeit und Lesbarkeit von Ausdrücken wesentlich verbessert, siehe obiges Beispiel.


next up previous contents
Nächste Seite: Logische Anweisungen Aufwärts: Logische Ausdrücke und Anweisungen Vorherige Seite: Logische Ausdrücke und Anweisungen   Inhalt
Lars Tornow 2003-03-31