File: GAUSS.PS of Tape: Various/Decus/decus-3
(Source file text) 

PROGRAM GAUSS (INPUT, OUTPUT);

VAR I, J, K, L, M, N: INTEGER;
    Q: REAL;
    A: ARRAY[1..9, 1..10] OF REAL;
    X: ARRAY[1..9] OF REAL;

BEGIN  (*EINLESEN DER KOEFFIZIENTEN UND DER RECHTEN SEITEN*)
READ(N); WRITELN("N =",N:2);
FOR I := 1 TO N DO
    BEGIN
    FOR J := 1 TO N+1 DO BEGIN READ(A[I,J]); WRITE(A[I,J]:8:2) END;
    WRITELN
    END;
FOR I := 1 TO N-1 DO
    BEGIN  (*AUFSUCHEN DES  GROESSTEN KOEFFIZIENTEN A[I,J]*)
    M := I;
    FOR K:=I+1 TO N DO
        IF ABS(A[K,I]) > ABS(A[M,I]) THEN M := K;
    IF M <> I THEN (*ZEILENTAUSCH*)
                   FOR J := I TO N+1 DO
                       BEGIN
                       Q := A[I,J];   A[I,J] := A[M,J];   A[M,J] :=Q
                       END;
                   (* ELIMINATION DER X[I] AUS D. K-TEN GLEICHUNG *)
                   FOR K:= I+1 TO N DO
                       BEGIN  Q:=A[K,I]/A[I,I];
                       FOR J:=I+1 TO N+1 DO A[K,J]:=A[K,J]-A[I,J]*Q
                       END;
    END;
FOR I := N DOWNTO 1 DO  (* BERECHNUNG VON X[I]*)
    BEGIN Q := A[I,N+1];
    FOR J := I+1 TO N DO Q := Q - A[I,J]*X[J];
    X[I] := Q/A[I,I]
    END;
 WRITELN;
FOR I := 1 TO N DO  (*AUSGABE VON X[I] *)
    WRITELN("X",I:1, " = ", X[I]:8:2)
END.