Advertisement
ridjis

DijagonaleMatrica

Dec 2nd, 2013
510
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. (*1.napisati program koji ucitava prirodan boroj n (n<20) i celobrojnu matricu nxn
  2. i proverava da li je matrica simetricna po glavnoj i sporednoj dijagonali*)
  3. MODULE dijag;
  4. FROM InOut IMPORT WriteString,ReadInt,WriteLn,ReadCard,WriteCard;
  5. TYPE MATRICA=ARRAY [1..20],[1..20] OF INTEGER;
  6. VAR     n:CARDINAL;
  7.     mat1: MATRICA;
  8. (*ucitavanje matrice*)
  9. PROCEDURE ucitaj(VAR mat1:MATRICA; n:CARDINAL);
  10. VAR i,j:CARDINAL;
  11. BEGIN
  12.   WriteString('Unesite: ');
  13.   WriteLn;
  14.   FOR i:=1 TO n DO
  15.     FOR j:=1 TO n DO
  16.       WriteString('mat[');
  17.       WriteCard(i,1);
  18.       WriteString(',');
  19.       WriteCard(j,1);
  20.       WriteString('] = ');
  21.       ReadInt(mat1[i,j] );
  22.     END;
  23.   END;
  24. END ucitaj;
  25. (*stampanje*)
  26. PROCEDURE stampaj(VAR mat1:MATRICA; n:CARDINAL);
  27. VAR i,j:CARDINAL;
  28. BEGIN
  29.   WriteString('Matrica izgleda ovako: ');
  30.   WriteLn;
  31.   FOR i:=1 TO n DO
  32.     FOR j:=1 TO n DO
  33.       WriteCard(mat1[i,j],5);
  34.     END;
  35.     WriteLn;
  36.   END;
  37. END stampaj;
  38. (*simetricnost glavna*)
  39. PROCEDURE simetricnost(VAR mat1:MATRICA) : BOOLEAN;
  40. VAR i,j:CARDINAL;
  41.  BEGIN
  42.   FOR i:=2 TO n DO
  43.     FOR j:=1 TO i-1 DO
  44.       IF mat1[i,j] # mat1[j,i] THEN
  45.         RETURN FALSE;
  46.       END;
  47.     END;
  48.   END;
  49.   RETURN TRUE;
  50. END simetricnost;
  51. (*sporedna dijagonala*)
  52. PROCEDURE sporednadijag (VAR mat1:MATRICA) : BOOLEAN;
  53. VAR i,j:CARDINAL;
  54.  BEGIN
  55.   FOR i:=1 TO n-1 DO
  56.     FOR j:=1 TO n-i DO
  57.       IF mat1[i,j] # mat1[n+1-j,n+1-i] THEN
  58.         RETURN FALSE;
  59.       END;
  60.     END;
  61.   END;
  62.   RETURN TRUE;
  63. END sporednadijag;
  64. (*glavni program*)
  65. BEGIN
  66.   WriteString('Unesite dimenziju matrice: ');
  67.   ReadCard(n);
  68.   ucitaj(mat1,n);
  69.   stampaj(mat1,n);
  70.   WriteLn;
  71.   (*glavna dijagonala*)
  72.   IF simetricnost(mat1) THEN
  73.     WriteString('Matrica je simetricna po glavnoj dijagonali.');
  74.   ELSE
  75.     WriteString('Matrica nije simetricna po glavnoj dijagonali.');
  76.   END;
  77.   WriteLn;
  78.   (*sporedna dijagonala*)
  79.   IF sporednadijag(mat1) THEN
  80.     WriteString('Matrica je simetricna po sporednoj dijagonali.');
  81.   ELSE
  82.     WriteString('Matrica nije simetricna po sporednoj dijagonali.');
  83.   END;
  84. END dijag.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement