Advertisement
pseudocreator

SPA1 lista + file //srb {radisapostojecimfajlom}

Mar 23rd, 2014
481
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. MODULE zlf;   {radi_sam0_sa_vec_postojecim_fajlom npr. imena.txt mora biti pretodno kreiran}
  2. FROM FIO IMPORT Open, RdStr, EOF, File, Close;
  3. FROM InOut IMPORT WriteString, WriteLn, ReadString;
  4. FROM Storage IMPORT ALLOCATE, DEALLOCATE;
  5. FROM Str IMPORT Compare;
  6. TYPE
  7.     STRING = ARRAY [1..20] OF CHAR;
  8.     pok = POINTER TO Slog;
  9.     Slog = RECORD
  10.               kinf : STRING;
  11.               veza : pok
  12.            END;
  13.    
  14. VAR
  15.    lista : pok;
  16.    f : File;
  17.    string1, string2, string3 : STRING;
  18.    nalaziseulisti : BOOLEAN;
  19.  
  20.  
  21.  
  22. PROCEDURE stampajlistu(lista: pok);
  23. VAR
  24.    temp : pok;
  25. BEGIN
  26.      temp := lista;
  27.      WHILE temp <> NIL DO
  28.           WriteString(temp^.kinf);
  29.           WriteLn;
  30.           temp := temp^.veza
  31.      END
  32. END stampajlistu;
  33.  
  34. PROCEDURE unistilistu(VAR lista: pok);
  35. VAR
  36.    temp : pok;
  37. BEGIN
  38.      temp := lista;
  39.      WHILE temp <> NIL DO
  40.           lista := lista^.veza;
  41.           DISPOSE(temp);
  42.           temp := lista
  43.      END
  44. END unistilistu;
  45.  
  46. PROCEDURE ucitajulistu(VAR lista: pok; str: STRING);
  47. VAR
  48.    temp : pok;
  49. BEGIN
  50.      NEW(temp);
  51.      temp^.kinf := str;
  52.      temp^.veza := lista;
  53.      lista := temp
  54. END ucitajulistu;
  55.  
  56. PROCEDURE proverapripadnosti(lista: pok; str: STRING): BOOLEAN;
  57. VAR
  58.    temp : pok;
  59.    postoji : BOOLEAN;
  60. BEGIN
  61.      temp := lista;
  62.      postoji := FALSE;
  63.      WHILE (temp <> NIL) AND NOT postoji DO
  64.           IF Compare(temp^.kinf,str) = 0 THEN
  65.             postoji := TRUE
  66.           END;
  67.           temp := temp^.veza;
  68.      END;
  69.      IF temp <> NIL THEN
  70.        DISPOSE(temp);
  71.      END;
  72.      RETURN postoji
  73. END proverapripadnosti;
  74.  
  75. PROCEDURE ucitajnakraj(VAR lista:pok; str: STRING);
  76. VAR
  77.    tekuci, temp: pok;
  78. BEGIN
  79.      NEW(temp);
  80.      temp^.kinf := str;
  81.      temp^.veza := NIL;
  82.      IF lista = NIL THEN
  83.        lista:=temp;
  84.      ELSE
  85.          tekuci := lista;
  86.          WHILE tekuci^.veza#NIL DO
  87.               tekuci:=tekuci^.veza;
  88.          END;
  89.          tekuci^.veza := temp;
  90.      END;
  91. END ucitajnakraj;
  92.  
  93.  
  94. BEGIN
  95.      lista := NIL;
  96.      f := Open('imena.txt');     (*mora biti vec postojeca*)
  97.      EOF := FALSE;
  98.      WHILE NOT EOF DO
  99.           RdStr(f,string1);
  100.           ucitajulistu(lista,string1)
  101.      END;
  102.      Close(f);
  103.      WriteLn;
  104.      WriteString('Unesite ime stringa za proveru: ');
  105.      ReadString(string3);
  106.      string2 := string3;
  107.      nalaziseulisti := proverapripadnosti(lista,string2);
  108.      IF nalaziseulisti THEN
  109.        WriteString('Uneti String se nalazi se u listi!')
  110.      ELSE
  111.          WriteString('Uneti String se ne nalazi u listi');
  112.      ucitajnakraj(lista,string2);
  113.      END;
  114.      WriteLn;
  115.      WriteLn;
  116.      WriteString('          ISPIS LISTE'); WriteLn;
  117.      stampajlistu(lista);
  118.  
  119.  
  120. END zlf.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement