Beispiel (6)


Korrigiertes Programm:

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

Test des Programms mit z = 20000:

101. Durchlauf: a = 100
               Zuweisung: q = 10000
               Abfrage: 10201 > 20000 ?
               Antwort: Nein
Ende der Schleife!

Ergebnis: q = 10000

Falsch!! Lösung ist: q = 19881

Korrektur des Programms:
Die Schleife muß länger laufen: bis 181, da 181^2 = 32761 letzte darstellbare Quadratzahl ist


Ingolf Giese