code 34311; procedure CHLDEC1(A, N, AUX); value N; integer N; array A, AUX; begin integer J, K, KK, KJ, LOW, UP; real R, EPSNORM; R:= 0; KK:= 0; for K:= 1 step 1 until N do begin KK:= KK + K; if A[KK] > R then R:= A[KK] end; EPSNORM:= AUX[2] * R; KK:= 0; for K:= 1 step 1 until N do begin KK:= KK + K; LOW:= KK - K + 1; UP:= KK - 1; R:= A[KK] - VECVEC(LOW, UP, 0, A, A); if R <= EPSNORM then begin AUX[3]:= K - 1; goto END end; A[KK]:= R:= SQRT(R); KJ:= KK + K; for J:= K + 1 step 1 until N do begin A[KJ]:= (A[KJ] - VECVEC(LOW, UP, KJ - KK, A, A)) / R; KJ:= KJ + J end end; AUX[3]:= N; END: end CHLDEC1; eop