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
|
|