Beispiel (9)


Korrigiertes Programm:

INTEGER q, z, a
READ z
LOOP a <= 0 TO 181
   q <= a^2
   IF a^2 > z - (2*a + 1) THEN LEAVELOOP
ENDLOOP
WRITE q

Test des Programms mit z = -10:

1. Durchlauf: a = 0
             Zuweisung: q = 0
             Abfrage: 0 > -11 ?
             Antwort: Ja

Ergebnis: q = 0

Falsch!! Es gibt keine negativen Quadrate (im Reellen).

Korrektur des Programms:
Abfrage nach dem Lesebefehl, ob z negativ ist.
Falls dies erfüllt ist, wird eine Fehlermeldung geschrieben und das Programm beendet.


Ingolf Giese