Advertisement
Guest User

Untitled

a guest
Apr 23rd, 2017
113
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. SYSTEM zad3;
  2. CONST
  3.     n = 3;
  4. TYPE
  5.     Matrix =    ARRAY[1..n], [1..n] OF INTEGER;
  6.     ExtMatrix = ARRAY[1..2 * n - 1], [1..n] OF INTEGER;
  7. CONFIGURATION mat[1..n], [1..n];
  8. CONNECTION
  9.     down:   mat[i, j] -> mat[i + 1, j].up;
  10.     right:  mat[i, j] -> mat[i, j + 1].left;
  11. SCALAR
  12.     a, b:       ExtMatrix;
  13.     c:          Matrix;
  14.     i, j:       INTEGER;
  15. VECTOR
  16.     av, bv, cv: INTEGER;
  17.  
  18. PROCEDURE PrintExt(SCALAR VAR mat : ExtMatrix);
  19. BEGIN
  20.     FOR i := 1 TO 2 * n - 1 DO
  21.         FOR j := 1 TO n DO
  22.             WRITEINT(mat[i, j], 8);
  23.         END;
  24.         WRITELN;
  25.     END;
  26. END PrintExt;
  27.  
  28. BEGIN
  29.     FOR i := 1 TO 2 * n - 1 DO
  30.         FOR j := 1 TO n DO
  31.             a[i, j] := 0;
  32.             b[i, j] := 0;
  33.         END;
  34.     END;
  35.     WRITESTRING("Unesite matricu a: ");
  36.     FOR i := 1 TO n DO
  37.         FOR j := 1 TO n DO
  38.             READINT(a[j + i - 1, i]);
  39.         END;
  40.     END;
  41.     WRITESTRING("Unesite matricu b: ");
  42.     FOR i := 1 TO n DO
  43.         FOR j := 1 TO n DO
  44.             READINT(b[i + j - 1, j]);
  45.         END;
  46.     END;
  47.  
  48.     WRITESTRING("Matrica a:");  WRITELN;
  49.     PrintExt(a);
  50.     WRITESTRING("Matrica b:");  WRITELN;
  51.     PrintExt(b);
  52.  
  53.     PARALLEL
  54.         av := 0; bv := 0; cv := 0;
  55.     ENDPARALLEL;
  56.  
  57.     FOR i := 1 TO 2 * n +` 1 DO
  58.         IF (i <= 2 * n - 1) THEN
  59.             LOAD[*], [1](av, a[i]);
  60.             LOAD[1], [*](bv, b[i]);
  61.         END;
  62.         PARALLEL
  63.             cv := av * bv + cv;
  64.             PROPAGATE.right(av);
  65.             PROPAGATE.down(bv);
  66.         ENDPARALLEL;
  67.     END;
  68.     STORE(cv, c);
  69.  
  70.     WRITESTRING("Rezultat je matrica c:"); WRITELN;
  71.     FOR i := 1 TO n DO
  72.         FOR j := 1 TO n DO
  73.             WRITEINT(c[i, j], 8);
  74.         END;
  75.         WRITELN;
  76.     END;
  77. END zad3.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement