Пишу программу для работы с большими числами.Создал спец тип format. В него переконвертирую большие числа, а потом работаю с этими массивами(сложение, вычитание)
	PHP код:
	
		
		
			
type
  format=array of integer;
var
first,second:format; 
		
		
	 
 
например, массив first[12345,6789,1] - это число 1.6789.12345
в ходе программы выполняется цикл, где
	PHP код:
	
		
		
			
for i:=0 to dlina_first-1 do
    begin
      first[i]:=first[i]+second[i];
      if first[i]>=100000 then  
        begin
          if i=dlina_first-1 then          //если некуда добавлять,то
            setlength(first,dlina_first+1);//создаем новую ячейку массива
          j:=first[i] div 100000;
          first[i+1]:=first[i+1] + j ;//добавляем в след ячейку
          first[i]:=first[i]- j*sample;
        end;
    end; 
		
		
	 
 
В общем, последовательно слагаю ячейки массивов. Если в получившейся ячейке массива first число не пятизначное, то я отсекаю от него лишние числа и эти отсечки складываю их со след ячейкой first (т.е. по принципу сложения в столбик).
ПРОБЛЕМА:
когда складываю один раз, то все нормально. Но когда ставлю цикл, где число складывается само с собой, получается новое число, его я складываю с самим собой, и т.д .По сути делаю возведение числа 2 в степень 64. до числа 262144 все идет норм. но когда складываю 
262144+262144 получается не 524288, а 624288. 
когда выполняется 
	PHP код:
	
		
		
			
if first[i]>=100000 then  
        begin
          if i=dlina_first-1 then          //если некуда добавлять,то
            setlength(first,dlina_first+1);//создаем новую ячейку массива
          j:=first[i] div 100000;
          first[i+1]:=first[i+1] + j ;//добавляем в след ячейку
          first[i]:=first[i]- j*sample;
        end; 
		
		
	 
 
то как бы автоматически выполняется и 
	PHP код:
	
		
		
			
second[i+1]:=second[i+1] + j ; 
		
		
	 
 
,а это искажает результат. Не могу понять почему меняется second автоматически?