Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //ucitavanje 3 liste iz fajlova i njihovo spajanje
- MODULE strVez;
- FROM InOut IMPORT WriteString, WriteLn, ReadInt, WriteInt;
- FROM Storage IMPORT ALLOCATE, DEALLOCATE;
- FROM FIO IMPORT File, RdStr, WrStr, Open, WrLn, EOF, Close;
- FROM Str IMPORT Compare;
- CONST
- MaxString = 20;
- fajl1 = "ucitajfajl1.txt";
- fajl2 = "ucitajfajl2.txt";
- fajl3 = "ucitajfajl3.txt";
- TYPE
- STRING = ARRAY[0..MaxString] OF CHAR;
- LISTA = POINTER TO ELEMENT;
- ELEMENT = RECORD
- kinfo : STRING;
- veza : LISTA
- END;
- PROCEDURE praznaLista(l: LISTA):BOOLEAN;
- BEGIN
- RETURN l = NIL
- END praznaLista;
- PROCEDURE dodajPocetak(VAR l: LISTA;str: STRING);
- VAR
- novi: LISTA;
- BEGIN
- NEW(novi);
- novi^.kinfo := str;
- novi^.veza := l;
- l := novi
- END dodajPocetak;
- PROCEDURE dodajKraj(VAR l: LISTA;str: STRING);
- VAR
- novi, temp : LISTA;
- BEGIN
- NEW(novi);
- novi^.kinfo := str;
- novi^.veza := NIL;
- IF praznaLista(l) THEN
- l := novi
- ELSE
- temp := l;
- WHILE temp^.veza # NIL DO
- temp := temp^.veza
- END;
- temp^.veza := novi
- END
- END dodajKraj;
- PROCEDURE unistiListu(VAR l: LISTA);
- VAR
- temp : LISTA;
- BEGIN
- temp := l;
- WHILE temp # NIL DO
- l := l^.veza;
- DISPOSE(temp);
- temp := l
- END
- END unistiListu;
- PROCEDURE stampanje(l: LISTA);
- VAR
- str : STRING;
- BEGIN
- WHILE (l # NIL) DO
- str := l^.kinfo;
- WriteString(str); WriteString(" ");
- l := l^.veza
- END;
- WriteLn;
- END stampanje;
- PROCEDURE pretraga(l: LISTA;str: STRING): BOOLEAN;
- VAR
- temp : LISTA;
- provera : INTEGER;
- BEGIN
- temp := l;
- WHILE (temp # NIL) DO
- provera := Compare(str,temp^.kinfo);
- IF provera = 0 THEN
- RETURN TRUE
- END;
- temp := temp^.veza
- END;
- RETURN FALSE;
- END pretraga;
- (*Ucitavanje iz fajlova i pravljenje liste*)
- PROCEDURE ucitavanjeFajla1(VAR f: File;VAR l: LISTA);
- VAR
- str : STRING;
- BEGIN
- f := Open(fajl1);
- EOF := FALSE;
- WHILE (NOT EOF) DO
- RdStr(f,str);
- dodajPocetak(l,str);
- END;
- Close(f);
- END ucitavanjeFajla1;
- PROCEDURE ucitavanjeFajla2(VAR f: File;VAR l: LISTA);
- VAR
- str : STRING;
- BEGIN
- f := Open(fajl2);
- EOF := FALSE;
- WHILE (NOT EOF) DO
- RdStr(f,str);
- dodajPocetak(l,str);
- END;
- Close(f);
- END ucitavanjeFajla2;
- PROCEDURE ucitavanjeFajla3(VAR f: File;VAR l: LISTA);
- VAR
- str : STRING;
- BEGIN
- f := Open(fajl3);
- EOF := FALSE;
- WHILE (NOT EOF) DO
- RdStr(f,str);
- dodajPocetak(l,str);
- END;
- Close(f);
- END ucitavanjeFajla3;
- PROCEDURE init(VAR lista: LISTA);
- BEGIN
- lista := NIL
- END init;
- PROCEDURE kopiranjeListe(stara: LISTA;VAR nova: LISTA);
- VAR
- temp : LISTA;
- BEGIN
- init(nova);
- WHILE (stara # NIL) DO
- dodajPocetak(nova,stara^.kinfo);
- stara := stara^.veza
- END
- END kopiranjeListe;
- PROCEDURE spojDveListe(l1,l2: LISTA;VAR nova: LISTA);
- VAR
- temp : LISTA;
- BEGIN
- kopiranjeListe(l1,nova);
- temp := nova;
- WHILE (temp^.veza # NIL) DO
- temp := temp^.veza
- END;
- temp^.veza := l2;
- END spojDveListe;
- PROCEDURE spojTriListe(l1,l2,l3: LISTA;VAR nova: LISTA);
- BEGIN
- spojDveListe(l1,l2,nova);
- spojDveListe(nova,l3,nova)
- END spojTriListe;
- VAR
- f1, f2, f3: File;
- Lista1, Lista2, Lista3, nova1, nova2: LISTA;
- BEGIN
- ucitavanjeFajla1(f1,Lista1);
- ucitavanjeFajla2(f2,Lista2);
- ucitavanjeFajla3(f3,Lista3);
- WriteString("Stampanje liste1 "); WriteLn;
- stampanje(Lista1); WriteLn;
- WriteString("Stampanje liste2 "); WriteLn;
- stampanje(Lista2); WriteLn;
- WriteString("Stampanje liste3 "); WriteLn;
- stampanje(Lista3); WriteLn;
- spojTriListe(Lista1,Lista2,Lista3,nova1);
- WriteString("Stampanje liste nove "); WriteLn;
- stampanje(nova1); WriteLn;
- unistiListu(nova1);
- WriteString("Stampanje liste posle praznjenja "); WriteLn;
- stampanje(nova1); WriteLn;
- END strVez.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement