begin

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
|