Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- SYSTEM zad3;
- CONST
- n = 3;
- TYPE
- Matrix = ARRAY[1..n], [1..n] OF INTEGER;
- ExtMatrix = ARRAY[1..2 * n - 1], [1..n] OF INTEGER;
- CONFIGURATION mat[1..n], [1..n];
- CONNECTION
- down: mat[i, j] -> mat[i + 1, j].up;
- right: mat[i, j] -> mat[i, j + 1].left;
- SCALAR
- a, b: ExtMatrix;
- c: Matrix;
- i, j: INTEGER;
- VECTOR
- av, bv, cv: INTEGER;
- PROCEDURE PrintExt(SCALAR VAR mat : ExtMatrix);
- BEGIN
- FOR i := 1 TO 2 * n - 1 DO
- FOR j := 1 TO n DO
- WRITEINT(mat[i, j], 8);
- END;
- WRITELN;
- END;
- END PrintExt;
- BEGIN
- FOR i := 1 TO 2 * n - 1 DO
- FOR j := 1 TO n DO
- a[i, j] := 0;
- b[i, j] := 0;
- END;
- END;
- WRITESTRING("Unesite matricu a: ");
- FOR i := 1 TO n DO
- FOR j := 1 TO n DO
- READINT(a[j + i - 1, i]);
- END;
- END;
- WRITESTRING("Unesite matricu b: ");
- FOR i := 1 TO n DO
- FOR j := 1 TO n DO
- READINT(b[i + j - 1, j]);
- END;
- END;
- WRITESTRING("Matrica a:"); WRITELN;
- PrintExt(a);
- WRITESTRING("Matrica b:"); WRITELN;
- PrintExt(b);
- PARALLEL
- av := 0; bv := 0; cv := 0;
- ENDPARALLEL;
- FOR i := 1 TO 2 * n +` 1 DO
- IF (i <= 2 * n - 1) THEN
- LOAD[*], [1](av, a[i]);
- LOAD[1], [*](bv, b[i]);
- END;
- PARALLEL
- cv := av * bv + cv;
- PROPAGATE.right(av);
- PROPAGATE.down(bv);
- ENDPARALLEL;
- END;
- STORE(cv, c);
- WRITESTRING("Rezultat je matrica c:"); WRITELN;
- FOR i := 1 TO n DO
- FOR j := 1 TO n DO
- WRITEINT(c[i, j], 8);
- END;
- WRITELN;
- END;
- END zad3.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement