Advertisement
Guest User

Zad2016

a guest
Jan 16th, 2018
65
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pascal 1.85 KB | None | 0 0
  1. program zad2016;
  2. const
  3.   FAJL = 'dokumenta.txt';
  4. type
  5.   pok=^dokument;
  6.   dokument=record
  7.     broj:integer;
  8.     slicnost:real;
  9.     najslicniji:pok;
  10.     pojavljivanje:integer;
  11.     sledeci:pok;
  12.   end;
  13. var
  14.   glava:pok;
  15.  
  16. function Pronadji(glava:pok; broj:integer): pok;
  17. var pronadjen:pok;
  18. begin
  19.   pronadjen:=nil;
  20.   while (glava<>nil) and (pronadjen=nil) do begin
  21.     if glava^.broj=broj then pronadjen:=glava;
  22.     glava:=glava^.sledeci;
  23.   end;
  24.   Pronadji:=pronadjen;
  25. end;
  26.  
  27. procedure Sredi(i,i1:pok; slicnost:real);
  28. begin
  29.   i^.pojavljivanje:=i^.pojavljivanje+1;
  30.   if i^.slicnost<slicnost then
  31.   begin
  32.     i^.slicnost:=slicnost;
  33.     i^.najslicniji:=i1;
  34.   end;
  35. end;
  36.  
  37. function Kreiraj(var glava:pok; broj:integer): pok;
  38. var novi:pok;
  39. begin
  40.   new(novi);
  41.   novi^.broj:=broj;
  42.   novi^.slicnost:=-1;
  43.   novi^.najslicniji:=nil;
  44.   novi^.pojavljivanje:=0;
  45.   novi^.sledeci:=glava;
  46.   glava:=novi;
  47.   Kreiraj:=novi;
  48. end;
  49.  
  50. procedure DodajNaPocetak(var glava:pok; broj1, broj2:integer; slicnost:real);
  51. var i1,i2:pok;
  52. begin
  53.   i1:=Pronadji(glava, broj1);
  54.   i2:=Pronadji(glava, broj2);
  55.  
  56.   if i1=nil then i1:=Kreiraj(glava, broj1);
  57.   if i2=nil then i2:=Kreiraj(glava, broj2);
  58.  
  59.   Sredi(i1, i2, slicnost);
  60.   Sredi(i2, i1, slicnost);
  61. end;
  62.  
  63. procedure Ispis(glava:pok);
  64. begin
  65.   while glava<>nil do begin
  66.     writeln(glava^.broj:8, '   ', glava^.pojavljivanje:8, '   ', (glava^.najslicniji)^.broj:8, '   ',glava^.slicnost:8:2);
  67.     glava:=glava^.sledeci;
  68.   end;
  69.   writeln();
  70. end;
  71.  
  72. procedure Procitaj(var glava:pok);
  73. var
  74.   ulaz:text;
  75.   broj1,broj2:integer;
  76.   slicnost:real;
  77. begin
  78.   assign(ulaz, FAJL);
  79.   reset(ulaz);
  80.  
  81.   while not eof(ulaz) do begin
  82.     read(ulaz, broj1);
  83.     read(ulaz, broj2);
  84.     read(ulaz, slicnost);
  85.     DodajNaPocetak(glava,broj1,broj2,slicnost);
  86.   end;
  87. end;
  88.  
  89. begin
  90.   glava:=nil;
  91.   Procitaj(glava);
  92.   Ispis(glava);
  93. end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement