home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
64'er
/
64ER_CD.iso
/
86xx
/
8609.d64
/
mult
< prev
next >
Wrap
Text File
|
1995-03-30
|
1KB
|
52 lines
program matmult;
(* multiplikation von zwei *)
(* matizen vorgegebener groesse *)
const n=5;
m=3;
l=4;
type a1=array[1..n,1..m] of real;
b1=array[1..m,1..l] of real;
c1=array[1..n,1..l] of real;
var a:a1;
b:b1;
c:c1;
procedure eingeben(var x:a1; var y:b1);
var i,j:integer;
begin
writeln('bitte ',n,' kreuz ',m,' matrix eingeben');
for i:=1 to n do
for j:=1 to m do read (x[i,j]);
writeln('bitte ',m,' kreuz ',l,' matrix eingeben');
for i:=1 to m do
for j:=1 to l do read(y[i,j]);
end;
procedure multiplizieren (f1:a1; f2:b1; var produkt:c1);
var i,j: integer;
function mult (f1:a1; f2:b1; var i,j:integer): real;
var d:real;
k:integer;
begin
d:=0.0;
for k:=1 to m do d:=d+f1[i,k]*f2[k,j]);
mult:=d;
end;
begin
for i:=1 to n do
for j:=1 to l do produkt[i,j]:=mult(f1,f2,i,j)
end;
procedure ausgeben (var c:c1);
var i,j: integer;
begin
writeln('ergebnis der multiplikation');
for i:=1 to n do
begin
for j:=1 to l do write (c[i,j]:8:2);
writeln;
end;
end;
begin
eingeben(a,b);
multiplizieren(a,b,c);
ausgeben(c)
end.