INTEGER q, z, a READ z LOOP a <= 0 TO 181 q <= a^2 IF (a+1)^2 > z THEN LEAVELOOP ENDLOOP WRITE q
... 182. Durchlauf: a = 181 Zuweisung: q = 32761 Abfrage: 33124 > 32767 ? Antwort: Nein (!!)
Falsch!! Speicherplatz für den Ausdruck (a+1)^2
ist nur 16 Bit lang (Zahlen von -32768 bis 32767).
Die Zahl 33124 ist also nicht darstellbar und ist
i.a. sogar negativ (-32412).
Korrektur des Programms: Umformung mit Hilfe von (a+1)^2 = a^2 + 2*a + 1