gitweb on Svarog
projekti pod git sistemom za održavanje verzija -- projects under the git version control systemdiff --git a/Cas01/RECNIKAT.MOD b/Cas01/RECNIKAT.MOD
--- a/Cas01/RECNIKAT.MOD
+++ /dev/null
@@ -1,186 +0,0 @@
-IMPLEMENTATION MODULE RecnikATP;\r
-\r
- FROM IO IMPORT\r
- RdKey, WrStr, WrLn, WrCard;\r
- FROM SYSTEM IMPORT\r
- TSIZE;\r
- FROM Str IMPORT\r
- Compare;\r
- FROM Storage IMPORT\r
- ALLOCATE, DEALLOCATE;\r
-\r
- PROCEDURE Hash(Rec: String): Indeksi;\r
- VAR\r
- i, Zbir, Temp: CARDINAL;\r
- BEGIN\r
- Zbir:= 0;\r
- i:= 1;\r
- WHILE (i <= MaxDuzRec) AND (Rec[i] # CHR(0)) DO\r
- Temp:= (ORD(Rec[i]) * ORD(Rec[i])) MOD Broj;\r
- Zbir:= (Zbir + Temp) MOD Broj;\r
- INC(i);\r
- END;\r
- RETURN Zbir;\r
- END Hash;\r
-\r
- PROCEDURE Inicijalizuj(VAR R: Recnik);\r
- VAR\r
- i: Indeksi;\r
- BEGIN\r
- WITH R DO\r
- BrojReci:= 0;\r
- FOR i := 0 TO MaxTabela DO\r
- NEW(Domace[i]);\r
- Domace[i]^.Veza := Domace[i];\r
- NEW(Strane[i]);\r
- Strane[i]^.Veza := Strane[i]\r
- END;\r
- END;\r
- END Inicijalizuj;\r
-\r
- PROCEDURE Unisti(VAR R: Recnik);\r
- VAR\r
- i: Indeksi;\r
- Tekuci: Lista;\r
- BEGIN\r
- FOR i:= 0 TO MaxTabela DO\r
- WHILE R.Domace[i] # R.Domace[i]^.Veza DO\r
- Tekuci:= R.Domace[i]^.Veza;\r
- R.Domace[i]^.Veza:= Tekuci^.Veza;\r
- DISPOSE(Tekuci);\r
- END;\r
- DISPOSE(R.Domace[i]);\r
- WHILE R.Strane[i] # R.Strane[i]^.Veza DO\r
- Tekuci:= R.Strane[i]^.Veza;\r
- R.Strane[i]^.Veza:= Tekuci^.Veza;\r
- DISPOSE(Tekuci);\r
- END;\r
- DISPOSE(R.Strane[i]);\r
- END;\r
- END Unisti;\r
-\r
- PROCEDURE Nadji(VAR Rec: String;\r
- VAR Tab: Tabela;\r
- VAR Prethodni: Lista;\r
- VAR Nadjen: BOOLEAN);\r
- VAR\r
- Pozicija: Indeksi;\r
- BEGIN\r
- Pozicija:= Hash(Rec);\r
- Prethodni:= Tab[Pozicija];\r
- Prethodni^.Rec:= Rec;\r
- IF Prethodni^.Veza = Prethodni THEN\r
- Nadjen:= FALSE;\r
- ELSE\r
- WHILE Compare(Prethodni^.Veza^.Rec, Rec) # 0 DO\r
- Prethodni:= Prethodni^.Veza;\r
- END;\r
- Nadjen:= Prethodni^.Veza # Tab[Pozicija]\r
- END;\r
- END Nadji;\r
-\r
- PROCEDURE Ubaci(DomacaRec, StranaRec: String;\r
- VAR R: Recnik;\r
- VAR Duplikat: BOOLEAN);\r
- VAR\r
- NadjenDom, NadjenStr: BOOLEAN;\r
- PrethodniDom, PrethodniStr, PomDom, PomStr: Lista;\r
- BEGIN\r
-\r
- Nadji(DomacaRec, R.Domace, PrethodniDom, NadjenDom);\r
- Nadji(StranaRec, R.Strane, PrethodniStr, NadjenStr);\r
-\r
- IF NadjenDom OR NadjenStr THEN\r
- Duplikat:= TRUE;\r
- ELSE\r
-\r
- Duplikat := FALSE;\r
-\r
- NEW(PomDom);\r
- PomDom^.Rec:= DomacaRec;\r
- PomDom^.Veza:= PrethodniDom^.Veza;\r
- PrethodniDom^.Veza:= PomDom;\r
-\r
- NEW(PomStr);\r
- PomStr^.Rec:= StranaRec;\r
- PomStr^.Veza:= PrethodniStr^.Veza;\r
- PrethodniStr^.Veza:= PomStr;\r
-\r
- PomDom^.Prevod:= PomStr;\r
- PomStr^.Prevod:= PomDom;\r
-\r
- INC(R.BrojReci);\r
-\r
- END;\r
- END Ubaci;\r
-\r
- PROCEDURE Izbaci(Rec: String;\r
- VAR R: Recnik;\r
- Domaca: BOOLEAN;\r
- VAR Ok: BOOLEAN);\r
- VAR\r
- Prethodni, Prethodni2, Temp, Temp2: Lista;\r
- BEGIN\r
-\r
- IF Domaca THEN\r
- Nadji(Rec, R.Domace, Prethodni, Ok);\r
- ELSE\r
- Nadji(Rec, R.Strane, Prethodni, Ok);\r
- END;\r
-\r
- IF Ok THEN\r
-\r
- Temp:= Prethodni^.Veza;\r
- Prethodni^.Veza:= Temp^.Veza;\r
-\r
- Temp2:= Temp^.Prevod;\r
- Prethodni2:= Temp2^.Veza;\r
- WHILE Prethodni2^.Veza # Temp2 DO\r
- Prethodni2:= Prethodni2^.Veza;\r
- END;\r
- Prethodni2^.Veza:= Temp2^.Veza;\r
-\r
- DISPOSE(Temp);\r
- DISPOSE(Temp2);\r
-\r
- DEC(R.BrojReci);\r
- END;\r
- END Izbaci;\r
-\r
- PROCEDURE Prevedi(StranuNaDomacu: BOOLEAN;\r
- Rec: String;\r
- VAR Prevod: String;\r
- VAR R: Recnik;\r
- VAR Ok: BOOLEAN);\r
- VAR\r
- Prethodni: Lista;\r
- BEGIN\r
- IF StranuNaDomacu THEN\r
- Nadji(Rec, R.Strane, Prethodni, Ok);\r
- ELSE\r
- Nadji(Rec, R.Domace, Prethodni, Ok);\r
- END;\r
- IF Ok THEN\r
- Prevod:= Prethodni^.Veza^.Prevod^.Rec;\r
- END\r
- END Prevedi;\r
-\r
- PROCEDURE Sadrzaj(VAR R: Recnik);\r
- VAR\r
- i: Indeksi;\r
- Tekuci: Lista;\r
- BEGIN\r
- WrStr('Sadrzaj recnika:');\r
- FOR i:= 0 TO MaxTabela DO\r
- Tekuci:= R.Domace[i]^.Veza;\r
- WHILE Tekuci# R.Domace[i] DO\r
- WrLn;\r
- WrStr(Tekuci^.Rec);\r
- WrStr(' --------- ');\r
- WrStr(Tekuci^.Prevod^.Rec);\r
- Tekuci:= Tekuci^.Veza;\r
- END;\r
- END;\r
- END Sadrzaj;\r
-\r
-END RecnikATP.\r