Zurück Vor +Ebene Home Inhalt Index Hilfe

Matrixaddition

Programm zur Addition zweier Matrizen.
program Matrixaddition(input, output);

        {Addition zweier Matritzen}

    uses
        stdfile;

    const
        MaxArray = 32; {<= 32767}

    var
        i, j, n, m: integer;
        a, b, c:    array [0..MaxArray, 0..MaxArray] of double;

    procedure init;
        var
            fName: string;
            f:     text;
            t:     double;
        begin {init}
            writeln('Darstellung der Addition zweier Matritzen');
            writeln;
            writeln('In welcher Datei liegen die Matritzen? (In matrix.dat liegt ein Beispiel.)');
            readln(fName);
            if StdOpen(f, fName) then begin
                if not StdRead(f, t) then begin
                    writeln('Konnte Dimension nicht lesen.');
                    halt
                end; {if}
                m := round(t);
                if m > MaxArray then begin
                    writeln('Die Dimension ueberschreitet die vorgegebene Arraygroesse.');
                    halt
                end; {if}
                if not StdRead(f, t) then begin
                    writeln('Konnte Dimension nicht lesen.');
                end; {if}
                n := round(t);
                if n > MaxArray then begin
                    writeln('Die Dimension ueberschreitet die vorgegebene Arraygroesse.');
                    halt
                end; {if}
                for i:=0 to m-1 do begin
                    if not StdReadn(f, n, @a[i, 0]) then begin
                        writeln('Konnte ', i+1, '-te Zeile nicht lesen.');
                    end; {if}
                end; {for}
                for i:=0 to n-1 do begin
                    if not StdReadn(f, n, @b[i, 0]) then begin
                        writeln('Konnte ', i+1, '-te Zeile nicht lesen.');
                    end; {if}
                end; {for}
            end else begin {if}
                writeln('Die Datei "', fName, '" kann nicht geoeffnet werden.');
            end; {if}
        end; {init}

    procedure result; begin
        for i:=0 to m-1 do begin
            for j:=0 to n-2 do begin
                write(c[i, j]:8:3, ' ');
            end; {for}
            writeln(c[i, n-1]:8:3);
        end; {for}
    end; {result}

    begin {Matrixaddition}
        init;
        for i:=0 to m do begin
            for j:=0 to n do begin
                c[i, j] := a[i, j] + b[i, j]
            end {for}
        end; {for}
        result;
    end. {Matrixaddition}
Zurück Vor +Ebene Home Inhalt Index Hilfe

Copyright Verlag Harri Deutsch AG  Stöcker DeskTop Mathematik