code 31100; procedure LNGREATODECI(X,XX,S,MANT,EXPO); value X,XX,S;integer S,EXPO;real X,XX;integer array MANT; begin integer I,K; real P,PP; MANT[0]:=SIGN(X);if X<0then begin X:=-X;XX:=-XX"END"; if X=0then EXPO:=0 else EXPO:=ENTIER(LN(X)/LN(10))+1; DP POW(10,-EXPO,P,PP); LNG MUL(X,XX,P,PP,X,XX); for I:=0while ENTIER(X)=0 & X^=0 do begin LNG MUL(X,XX,10,0,X,XX);EXPO:=EXPO-1end; for I:=1step 1until S"DO" begin K:=ENTIER(X);if K>9then K:=9;MANT[I]:=K; LNG SUB(X,XX,K,0,P,PP);LNG MUL(P,PP,10,0,X,XX) end; if ENTIER(X)>=5 then begin for I:=S"STEP"-1until 1do begin K:=MANT[I]+1; if K<10then begin MANT[I]:=K;goto READY end; MANT[I]:=0 end; EXPO:=EXPO+1; if S>0then MANT[1]:=1; READY: end; EXPO:=EXPO+1 end LNGREATODECI; eop