code 31051; procedure POLCHS(N,A); value N; integer N; array A; if N>1 then begin comment SCALING; integer K,L,TWOPOW; TWOPOW:=2; for K:=1 step 1 until N-2 do begin A[K]:=A[K]/TWOPOW; TWOPOW:=TWOPOW*2; end; A[N-1]:=2*A[N-1]/TWOPOW; A[N]:=A[N]/TWOPOW; A[N-2]:=A[N-2]+A[N]; comment N<=2 READY; for K:=N-2 step -1 until 1 do begin A[K-1]:=A[K-1]+A[K+1]; A[K]:=A[K]*2 + A[K+2]; for L:=K+1 step 1 until N-2 do A[L]:=A[L]+A[L+2]; end; end POLCHS; eop