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}