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
|