Beispiel (8)


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 = 3:

      ...
2. Durchlauf: a = 1
             Zuweisung: q = 1
             Abfrage: 1 > 2 ?
             Antwort: Nein
3. Durchlauf: a = 2
             Zuweisung: q = 4
             Abfrage: 4 > 0 ?
             Antwort: Ja

Ergebnis: q = 4

Falsch!! Lösung ist: q = 1

Korrektur des korrigierten Programms:
Abfrage mit "z - (2*a + 1)" statt "z - 2*a + 1".


Ingolf Giese