может баг FPC?
Вот переписал твой алгоритм на Delphi XE3 (сорри, но твой код написан просто через жопу).
Что под дебагером, что без - результат одинаковый.
Код:
program Project1;
{$APPTYPE CONSOLE}
{$R *.res}
uses
System.SysUtils;
function GetNextNumber(SrcNumber : Integer) : Integer;
begin
Result := 0;
Repeat
Result := Result + Sqr((SrcNumber mod 10));
SrcNumber := SrcNumber div 10;
Until (SrcNumber = 0);
end;
const
Iterations = 30;
var
I : Integer;
InitNumber : Integer;
RepeatCount : Integer;
NumbersArray : Array Of Integer;
begin
try
InitNumber := 256;
SetLength(NumbersArray,Iterations+1);
NumbersArray[0] := InitNumber;
For I := 1 To Iterations Do
NumbersArray[i] := GetNextNumber(NumbersArray[I-1]);
RepeatCount := 0;
For I := High(NumbersArray)-1 DownTo Low(NumbersArray) Do
If NumbersArray[i] = NumbersArray[High(NumbersArray)] Then Inc(RepeatCount);
WriteLn('Initial number: ',InitNumber);
WriteLn('Number of iterations: ',Iterations);
WriteLn('Array:');
For I := Low(NumbersArray) To High(NumbersArray) Do
Write(NumbersArray[i],' ');
WriteLn;
WriteLn('Iteration line count (0 means that row of iteration is too short): ',RepeatCount);
WriteLn;
WriteLn('Press ENTER to close the window...');
ReadLn;
except
on E: Exception do
begin
Writeln(E.ClassName, ': ', E.Message);
WriteLn('Press ENTER to close the window...');
ReadLn;
end;
end;
end.