home *** CD-ROM | disk | FTP | other *** search
- int SIZE = 75;
- type TYPE = word;
-
- proc matrixMultiply([*, *] TYPE x; [*, *] TYPE y; [*, *] TYPE z)void:
- TYPE i, j, k, sum;
-
- for i from 0 upto dim(z, 1) - 1 do
- for j from 0 upto dim(z, 2) - 1 do
- sum := 0;
- for k from 0 upto dim(x, 2) - 1 do
- sum := sum + x[i, k] * y[k, j];
- od;
- z[i, j] := sum;
- od;
- od;
- corp;
-
- proc main()void:
- [SIZE, SIZE] TYPE a, b;
- TYPE i, j;
-
- for i from 0 upto SIZE - 1 do
- for j from 0 upto SIZE - 1 do
- a[i, j] := i + j;
- od;
- od;
- writeln("Starting square:");
- matrixMultiply(a, a, b);
- writeln("Squaring done. Diagonal of squared matrix is:");
- for i from 0 upto SIZE - 1 do
- write(b[i, i], ' ');
- od;
- writeln();
- corp;