code 34051; procedure SOL(A, N, P, B); value N; integer N; array A, B; integer array P; begin integer K, PK; real R; for K:= 1 step 1 until N do begin R:= B[K]; PK:= P[K]; B[K]:= (B[PK] - MATVEC(1, K - 1, K, A, B)) / A[K,K]; if PK ^= K then B[PK]:= R end; for K:= N step - 1 until 1 do B[K]:= B[K] - MATVEC(K + 1, N, K, A, B) end SOL eop