code 31052;
procedure CHSPOL(N,A);
value N; integer N; array A;
if N>1 then 
begin 
    integer K,L,TWOPOW;
    for K:=0 step 1 until N-2 do 
    begin 
        for L:=N-2 step -1 until K do 
        A[L]:=A[L]-A[L+2]; A[K+1]:=A[K+1]/2;
    end;
    TWOPOW:=2;
    for K:=1 step 1 until N-2 do 
    begin 
        A[K]:=A[K]*TWOPOW; TWOPOW:=TWOPOW*2;
    end;
    A[N-1]:=TWOPOW*A[N-1];
    A[N]:=TWOPOW*A[N];
end CHSPOL

        eop