MATMULT|
begin

comment library A6, A12;

integer  i, j, k, m, n, p;

array  A[1:10, 1:20], B[1:20, 1:10], C[1:10, 1:10];

procedure  set C to AB (m, n, p);
      value    m, n, p;
      integer  m, n, p;
   begin
   integer  i, j, k;

   for  i := 1 step  1 until  m do
      for  j := 1 step  1 until  p do
         C[i,j] := 0.0;

   for  i := 1 step  1 until  m do
      for  j := 1 step  1 until  p do
         for  k := 1 step  1 until  n do
            C[i,j] := C[i,j] + A[i,k] × B[k,j];

   end set C to AB;

open(30);

m := 10;
n := 20;
p := 10;

writetext(30, [[cc_]set * C * to * AB(]);
write(30, format([nd_]), m); writetext(30, [,]);
write(30, format([nd_]), n); writetext(30, [,]);
write(30, format([nd_]), p); writetext(30, [)[c_]]);

for  i := 1 step  1 until  m do
   for  k := 1 step  1 until  n do
      A[i,k] := i / 10.0 ^ (k-1);

for  k := 1 step  1 until  n do
   for  j := 1 step  1 until  p do
      B[k,j] := k;

set C to AB(m, n, p);

for  i := 1 step  1 until  m do
   begin
   writetext(30, [[cc_]Row_]);
   write(30, format([ndd_]), i);
   writetext(30, [[s_]should * be_]);
   write(30, format([-d.ddddddddº+ndc_]),  1.23456789×i);
   for  j := 1 step  1 until  p do
      write(30, format([-d.ddddddddº+nd_]),  C[i,j]);
   end;

newline(30, 2);
close(30);
end
|
|