Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- program zad2016;
- const
- FAJL = 'dokumenta.txt';
- type
- pok=^dokument;
- dokument=record
- broj:integer;
- slicnost:real;
- najslicniji:pok;
- pojavljivanje:integer;
- sledeci:pok;
- end;
- var
- glava:pok;
- function Pronadji(glava:pok; broj:integer): pok;
- var pronadjen:pok;
- begin
- pronadjen:=nil;
- while (glava<>nil) and (pronadjen=nil) do begin
- if glava^.broj=broj then pronadjen:=glava;
- glava:=glava^.sledeci;
- end;
- Pronadji:=pronadjen;
- end;
- procedure Sredi(i,i1:pok; slicnost:real);
- begin
- i^.pojavljivanje:=i^.pojavljivanje+1;
- if i^.slicnost<slicnost then
- begin
- i^.slicnost:=slicnost;
- i^.najslicniji:=i1;
- end;
- end;
- function Kreiraj(var glava:pok; broj:integer): pok;
- var novi:pok;
- begin
- new(novi);
- novi^.broj:=broj;
- novi^.slicnost:=-1;
- novi^.najslicniji:=nil;
- novi^.pojavljivanje:=0;
- novi^.sledeci:=glava;
- glava:=novi;
- Kreiraj:=novi;
- end;
- procedure DodajNaPocetak(var glava:pok; broj1, broj2:integer; slicnost:real);
- var i1,i2:pok;
- begin
- i1:=Pronadji(glava, broj1);
- i2:=Pronadji(glava, broj2);
- if i1=nil then i1:=Kreiraj(glava, broj1);
- if i2=nil then i2:=Kreiraj(glava, broj2);
- Sredi(i1, i2, slicnost);
- Sredi(i2, i1, slicnost);
- end;
- procedure Ispis(glava:pok);
- begin
- while glava<>nil do begin
- writeln(glava^.broj:8, ' ', glava^.pojavljivanje:8, ' ', (glava^.najslicniji)^.broj:8, ' ',glava^.slicnost:8:2);
- glava:=glava^.sledeci;
- end;
- writeln();
- end;
- procedure Procitaj(var glava:pok);
- var
- ulaz:text;
- broj1,broj2:integer;
- slicnost:real;
- begin
- assign(ulaz, FAJL);
- reset(ulaz);
- while not eof(ulaz) do begin
- read(ulaz, broj1);
- read(ulaz, broj2);
- read(ulaz, slicnost);
- DodajNaPocetak(glava,broj1,broj2,slicnost);
- end;
- end;
- begin
- glava:=nil;
- Procitaj(glava);
- Ispis(glava);
- end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement