gitweb on Svarog
projekti pod git sistemom za održavanje verzija -- projects under
the git version control system
197789342bcbc5293eabe0e430e2e7ff358f8251
1 IMPLEMENTATION MODULE RecnikATP
;
4 RdKey
, WrStr
, WrLn
, WrCard
;
12 PROCEDURE Hash(Rec
: String
): Indeksi
;
14 i
, Zbir
, Temp
: CARDINAL;
18 WHILE (i
<= MaxDuzRec
) AND (Rec
[i
] #
CHR(0)) DO
19 Temp
:= (ORD(Rec
[i
]) * ORD(Rec
[i
])) MOD Broj
;
20 Zbir
:= (Zbir
+ Temp
) MOD Broj
;
26 PROCEDURE Inicijalizuj(VAR R
: Recnik
);
32 FOR i
:= 0 TO MaxTabela
DO
34 Domace
[i
]^.Veza
:= Domace
[i
];
36 Strane
[i
]^.Veza
:= Strane
[i
]
41 PROCEDURE Unisti(VAR R
: Recnik
);
46 FOR i
:= 0 TO MaxTabela
DO
47 WHILE R.Domace
[i
] # R.Domace
[i
]^.Veza
DO
48 Tekuci
:= R.Domace
[i
]^.Veza
;
49 R.Domace
[i
]^.Veza
:= Tekuci^.Veza
;
53 WHILE R.Strane
[i
] # R.Strane
[i
]^.Veza
DO
54 Tekuci
:= R.Strane
[i
]^.Veza
;
55 R.Strane
[i
]^.Veza
:= Tekuci^.Veza
;
62 PROCEDURE Nadji(VAR Rec
: String
;
70 Prethodni
:= Tab
[Pozicija
];
72 IF Prethodni^.Veza
= Prethodni
THEN
75 WHILE Compare(Prethodni^.Veza^.Rec
, Rec
) #
0 DO
76 Prethodni
:= Prethodni^.Veza
;
78 Nadjen
:= Prethodni^.Veza # Tab
[Pozicija
]
82 PROCEDURE Ubaci(DomacaRec
, StranaRec
: String
;
84 VAR Duplikat
: BOOLEAN);
86 NadjenDom
, NadjenStr
: BOOLEAN;
87 PrethodniDom
, PrethodniStr
, PomDom
, PomStr
: Lista
;
90 Nadji(DomacaRec
, R.Domace
, PrethodniDom
, NadjenDom
);
91 Nadji(StranaRec
, R.Strane
, PrethodniStr
, NadjenStr
);
93 IF NadjenDom
OR NadjenStr
THEN
100 PomDom^.Rec
:= DomacaRec
;
101 PomDom^.Veza
:= PrethodniDom^.Veza
;
102 PrethodniDom^.Veza
:= PomDom
;
105 PomStr^.Rec
:= StranaRec
;
106 PomStr^.Veza
:= PrethodniStr^.Veza
;
107 PrethodniStr^.Veza
:= PomStr
;
109 PomDom^.Prevod
:= PomStr
;
110 PomStr^.Prevod
:= PomDom
;
117 PROCEDURE Izbaci(Rec
: String
;
122 Prethodni
, Prethodni2
, Temp
, Temp2
: Lista
;
126 Nadji(Rec
, R.Domace
, Prethodni
, Ok
);
128 Nadji(Rec
, R.Strane
, Prethodni
, Ok
);
133 Temp
:= Prethodni^.Veza
;
134 Prethodni^.Veza
:= Temp^.Veza
;
136 Temp2
:= Temp^.Prevod
;
137 Prethodni2
:= Temp2^.Veza
;
138 WHILE Prethodni2^.Veza # Temp2
DO
139 Prethodni2
:= Prethodni2^.Veza
;
141 Prethodni2^.Veza
:= Temp2^.Veza
;
150 PROCEDURE Prevedi(StranuNaDomacu
: BOOLEAN;
158 IF StranuNaDomacu
THEN
159 Nadji(Rec
, R.Strane
, Prethodni
, Ok
);
161 Nadji(Rec
, R.Domace
, Prethodni
, Ok
);
164 Prevod
:= Prethodni^.Veza^.Prevod^.Rec
;
168 PROCEDURE Sadrzaj(VAR R
: Recnik
);
173 WrStr('Sadrzaj recnika:');
174 FOR i
:= 0 TO MaxTabela
DO
175 Tekuci
:= R.Domace
[i
]^.Veza
;
176 WHILE Tekuci# R.Domace
[i
] DO
179 WrStr(' --------- ');
180 WrStr(Tekuci^.Prevod^.Rec
);
181 Tekuci
:= Tekuci^.Veza
;
Svarog.pmf.uns.ac.rs/gitweb
maintanance
Doni Pracner