Poniżej wkleiłem procedurę która potrzebna jest do obliczenia i sprawdzenia macierzy. Jednak podczas pracy nad tą procedurą nikt nie tłumaczył co jaka pętla robi i po co ona jest, a chciałbym takową wiedzę mieć. czy może ktoś ładnie krótkimi komentarzami powyjaśniać co nie co?
PROCEDURE GAUSS(A:MAC;B:MAC; VAR X:MAC; N,L:INTEGER; EPS:REAL; VAR IST:BOOLEAN; VAR DET:REAL);
VAR
M:REAL; I,J,K:INTEGER; LICZ:INTEGER;
BEGIN
IST:=TRUE; LICZ:=1;
FOR I:=1 TO N-1 DO BEGIN
M:=ABS(A[I,I]); K:=I;
FOR J:=I+1 TO N DO
IF ABS (A[J,I])>M THEN BEGIN
M:=ABS(A[J,I]); K:=J; END;
IF M
EXIT; END;
IF K>I THEN BEGIN
FOR J:=1 TO L DO BEGIN
M:=B[I,J]; B[I,J]:=B[K,J];
B[K,J]:=M;END;
LICZ:=-LICZ;
FOR J:=1 TO N DO BEGIN
M:=A[I,J]; A[I,J]:=A[K,J];
A[K,J]:=M; END;
END;
FOR J:=I+1 TO N DO BEGIN
M:=-A[J,I]/A[I,I];
FOR K:= 1 TO L DO BEGIN
B[J,K]:=B[J,K]+M*B[I,K]; END;
FOR K:=I TO N DO
A[J,K]:=A[J,K]+M*A[I,K];
END;
END;
FOR K:=L DOWNTO 1 DO
FOR I:=N DOWNTO 1 DO BEGIN
M:=0;
FOR J:=I+1 TO N DO
M:=M+X[J,K]*A[I,J];
X[I,K]:=(B[I,K]-M)/A[I,I];
END;