home *** CD-ROM | disk | FTP | other *** search
/ 64'er / 64ER_CD.iso / 86xx / 8609.d64 / mult < prev    next >
Text File  |  1995-03-30  |  1KB  |  52 lines

  1. program matmult;
  2. (* multiplikation von zwei  *)
  3. (* matizen vorgegebener groesse *)
  4. const n=5;
  5.       m=3;
  6.       l=4;
  7. type a1=array[1..n,1..m] of real;
  8.      b1=array[1..m,1..l] of real;
  9.      c1=array[1..n,1..l] of real;
  10. var a:a1;
  11.     b:b1;
  12.     c:c1;
  13. procedure eingeben(var x:a1; var y:b1);
  14. var i,j:integer;
  15. begin
  16.   writeln('bitte ',n,' kreuz ',m,' matrix eingeben');
  17.   for i:=1 to n do
  18.       for j:=1 to m do read (x[i,j]);
  19.   writeln('bitte ',m,' kreuz ',l,' matrix eingeben');
  20.   for i:=1 to m do
  21.       for j:=1 to l do read(y[i,j]);
  22. end;
  23. procedure multiplizieren (f1:a1; f2:b1; var produkt:c1);
  24. var i,j: integer;
  25. function mult (f1:a1; f2:b1; var i,j:integer): real;
  26. var d:real;
  27.     k:integer;
  28. begin
  29.    d:=0.0;
  30.    for k:=1 to m do d:=d+f1[i,k]*f2[k,j]);
  31.    mult:=d;
  32. end;
  33. begin
  34.    for i:=1 to n do
  35.        for j:=1 to l do produkt[i,j]:=mult(f1,f2,i,j)
  36. end;
  37. procedure ausgeben (var c:c1);
  38. var i,j: integer;
  39. begin
  40.    writeln('ergebnis der multiplikation');
  41.    for i:=1 to n do
  42.    begin
  43.       for j:=1 to l do write (c[i,j]:8:2);
  44.       writeln;
  45.    end;
  46. end;
  47. begin
  48.    eingeben(a,b);
  49.    multiplizieren(a,b,c);
  50.    ausgeben(c)
  51. end.
  52.