code 31200; procedure LNG INT ADD(U,V,SUM); integer array U,V,SUM; begin integer LU,LV,DIFF,CARRY,I,T,MAX; LU:=U[0]; LV:=V[0]; if LU >= LV then begin MAX:=LU; DIFF:=LU - LV + 1; CARRY:=0; for I:=LU step -1 until DIFF do begin T:=U[I] + V[I-DIFF+1] + CARRY; CARRY:=if T<10 000 000 then 0 else 1; SUM[I]:=T - CARRY * 10 000 000 end; for I:=DIFF - 1 step -1 until 1 do begin T:=U[I] + CARRY; CARRY:=if T<10 000 000 then 0 else 1; SUM[I]:=T - CARRY * 10 000 000 end end else begin MAX:=LV; DIFF:=LV - LU + 1; CARRY:=0; for I:=LV step -1 until DIFF do begin T:=V[I] + U[I-DIFF+1] + CARRY; CARRY:=if T<10 000 000 then 0 else 1; SUM[I]:=T - CARRY * 10 000 000 end; for I:=DIFF - 1 step -1 until 1 do begin T:=V[I] + CARRY; CARRY:=if T<10 000 000 then 0 else 1; SUM[I]:=T - CARRY * 10 000 000 end end; if CARRY=1 then begin for I:=MAX step -1 until 1 do SUM[I+1]:=SUM[I]; SUM[1]:=1; MAX:=MAX + 1 end; SUM[0]:=MAX end LNG INT ADD eop