Programmiersprache Pascal

Logische Operatoren

Folgende logische Operatoren stehen in Standard und Extended Pascal zur Verfügung:
  AND    logisches AND (Und, Konjunktion)
  OR     logisches OR  (Oder, Disjunktion)
  NOT    logisches NOT (Nicht, Negation)
AND und OR sind binäre Operatoren, NOT ist unär.

Eine ganze Reihe von Pascal-Systemen verfügt über einen weiteren binären logischen Operator:

  XOR    exklusives OR (exklusives Oder, Antivalenz)
Dies trifft z.B. auf Turbo Pascal, Delphi, XL Pascal und Pascal++ zu.

Die Wirkung der logischen Operatoren ist wie folgt:

   x     y    | NOT x | x AND y | x OR y | x XOR y
  ------------+-------+---------+--------+--------
  True  True  | False | True    | True   | False
  True  False | False | False   | True   | True
  False True  | True  | False   | True   | True
  False False | True  | False   | False  | False
  ------------------------------------------------
Bemerkung:
Die Antivalenz läßt sich mit Hilfe der anderen Operatoren ausdrücken, so daß ein Fehlen des Operators XOR in den Sprachstandards kein echtes Problem darstellt:
  FUNCTION xor(x, y: BOOLEAN) : BOOLEAN;
  BEGIN
    xor := NOT x = y;
  END;

Beispiel:

  VAR i, j, k : INTEGER;
  FUNCTION fct(i, j: INTEGER): BOOLEAN; EXTERNAL;

  IF ( ( k > 0 ) AND fct(i, j) ) THEN
    BEGIN ... END;
Achtung:
Besitzt im obigen Beispiel die Variable k einen negativen Wert, so gibt es folgende Möglichkeiten:
  1. die Funktion fct wird ausgeführt, obwohl der von ihr gelieferte Funktionswert im konkreten Fall bedeutungslos ist
  2. die Funktion fct wird nicht ausgeführt, da wegen k < 0 sofort feststeht, daß die Bedingung ( k > 0 ) AND fct(i, j) nicht erfüllt sein kann
Die 2. Variante ("Shortcut"-Version) Siehe auch: Shortcut-Operatoren



P. Böhme, 06.09.1996