Advertisement
ridjis

susedni

Mar 31st, 2014
310
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. MODULE k5;
  2. FROM InOut IMPORT WriteLn,WriteString,WriteInt,ReadInt;
  3. FROM Storage IMPORT ALLOCATE, DEALLOCATE;
  4.  
  5. TYPE brojevi=POINTER TO Slog;
  6.      Slog = RECORD
  7.         info:INTEGER;
  8.     veza:brojevi;
  9.      END;
  10. VAR lista,nova:brojevi;
  11.     i,n,br:INTEGER;
  12.  
  13. (*---------PROCEDURE--------*)
  14.  
  15. PROCEDURE DodajKraj(VAR lista:brojevi; br:INTEGER);
  16. VAR temp,tekuci:brojevi;
  17. BEGIN
  18.   NEW(temp);
  19.   temp^.info:=br;
  20.   temp^.veza:=NIL;
  21.   IF lista=NIL THEN
  22.     lista:=temp;
  23.   ELSE
  24.     tekuci:=lista;
  25.     WHILE tekuci^.veza # NIL DO
  26.       tekuci:=tekuci^.veza;
  27.     END;
  28.     tekuci^.veza:=temp;
  29.   END;
  30. END DodajKraj;
  31.  
  32. PROCEDURE Stampaj(lista:brojevi);
  33. VAR temp:brojevi;
  34. BEGIN
  35.   temp:=lista;
  36.   WHILE temp#NIL DO
  37.     WriteInt(temp^.info,1);
  38.     WriteLn;
  39.     temp:=temp^.veza;
  40.   END;
  41. END Stampaj;
  42.  
  43. PROCEDURE Unisti(VAR lista:brojevi);
  44. VAR temp:brojevi;
  45. BEGIN
  46.   temp:=lista;
  47.   WHILE temp#NIL DO
  48.     lista:=lista^.veza;
  49.     DISPOSE(temp);
  50.     temp:=lista;
  51.   END;
  52. END Unisti;
  53.  
  54. PROCEDURE Mod3(lista:brojevi);
  55. VAR temp:brojevi;
  56. BEGIN
  57.   IF lista=NIL THEN
  58.     WriteString('Lista je prazna.');
  59.     WriteLn;
  60.   ELSE
  61.     temp:=lista;
  62.     WHILE temp # NIL DO
  63.       IF temp^.info MOD 3 = 0 THEN
  64.         WriteInt(temp^.info,1);
  65.     WriteLn;
  66.       END;
  67.       temp:=temp^.veza;
  68.     END;
  69.   END;
  70. END Mod3;
  71.  
  72. PROCEDURE DvaSusedna(VAR lista,nova:brojevi);
  73. VAR temp:brojevi;
  74.     br:INTEGER;
  75. BEGIN
  76.   nova:=NIL;
  77.   temp:=lista;
  78.   IF temp # NIL THEN
  79.     IF temp^.veza # NIL THEN
  80.       WHILE temp^.veza # NIL DO
  81.         br:=temp^.veza^.info+temp^.info;
  82.         DodajKraj(nova,br);
  83.         temp:=temp^.veza;
  84.       END;
  85.     END;
  86.   END;
  87. END DvaSusedna;
  88.  
  89. (*---------GLAVNI PROGRAM--------*)
  90. BEGIN
  91.   lista:=NIL;
  92.   WriteString('Unesite n: ');
  93.   ReadInt(n);
  94.   FOR i:=1 TO n DO
  95.     WriteString('Unesite ');
  96.     WriteInt(i,1);
  97.     WriteString('. broj: ');
  98.     ReadInt(br);
  99.     DodajKraj(lista,br);
  100.   END;
  101.  
  102.   WriteString('Lista izgleda ovako: '); WriteLn;
  103.   Stampaj(lista);
  104.   WriteLn;
  105.  
  106.   WriteString('Clanovi liste deljivi sa 3 su: '); WriteLn;
  107.   Mod3(lista);
  108.   WriteLn;
  109.  
  110.   WriteString(' -- :Nova lista sastavljena od susednih clanova: -- '); WriteLn;
  111.   DvaSusedna(lista);
  112.   WriteLn;
  113.   WriteString('Lista izgleda ovako: '); WriteLn;
  114.   Stampaj(lista,nova);
  115.   WriteLn;
  116.  
  117.   Unisti(lista);
  118.   Unisti(nova);
  119.   WriteString('Memorija je oslobodjena.');
  120.   WriteLn;
  121. END k5.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement