Advertisement
Guest User

jun 2015 drugi

a guest
Jul 1st, 2015
194
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.09 KB | None | 0 0
  1. program jun_2015_II;
  2. type oblast=record
  3. broj_stanovnika:integer;
  4. naziv_oblasti:string[70];
  5. end;
  6. pokelement=^element;
  7. element=record
  8. info:oblast;
  9. next:pokelement;
  10. end;
  11. {------------------------------------------------------------------------------}
  12. function ucitaj_listu(var glava:pokelement; var dat:text):pokelement;
  13. var pom:pokelement;
  14. broj:integer;
  15. rec:string[70];
  16. begin
  17. while not eof(dat) do
  18. begin
  19. while not eoln(dat) do
  20. begin
  21. read(dat, broj, rec);
  22. if glava=NIL then
  23. begin
  24. new(glava);
  25. glava^.info.broj_stanovnika:=broj;
  26. glava^.info.naziv_oblasti:=rec;
  27. glava^.next:=NIL;
  28. end
  29. else
  30. begin
  31. pom:=glava;
  32. while(pom^.next<>NIL) do
  33. begin
  34. pom:=pom^.next;
  35. new(pom^.next);
  36. pom:=pom^.next;
  37. pom^.info.broj_stanovnika:=broj;
  38. pom^.info.naziv_oblasti:=rec;
  39. pom^.next:=NIL;
  40. end;
  41. end;
  42. ucitaj_listu:=glava;
  43. end;
  44. end;
  45. end;
  46. {------------------------------------------------------------------------------}
  47. procedura nadji_prosek(var glava:pokelement; var n:integer; var prosek:real);
  48. var suma:integer;
  49. pom:pokelement;
  50. begin
  51. pom:=glava;
  52. s:=0;
  53. n:=0;
  54. while (pom<>NIL) do
  55. begin
  56. suma:=pom^.info.broj_stanovnika;
  57. n:=n+1;
  58. pom:=pom^.next;
  59. end;
  60. prosek:=suma/n;
  61. end;
  62. {------------------------------------------------------------------------------}
  63. procedure ukloni(var glava:pokelement; prosek:real); {uklanjace oblasti koje nisu prenaseljene}
  64. var pom,trenutni,prethodni:pokelement;
  65. p:real;
  66. begin
  67. p:=prosek*2;
  68. prethodni:=NIL;
  69. trenutni:=glava;
  70. while(trenutni<>NIL) do
  71. begin
  72. if(trenutni^.info.broj_stanovnik<=p) then
  73. begin
  74. if prethodni=NIL then
  75. begin
  76. glava:=trenutni^.next;
  77. pom:=trenutni;
  78. trenutni:=trenutni^.next;
  79. dispose(pom);
  80. end
  81. else
  82. begin
  83. prethodni^.next:=trenutni^.next;
  84. pom:=trenutni;
  85. trenutni:=trenutni^.next;
  86. dispose(pom);
  87. end;
  88. end
  89. else
  90. begin
  91. prethodni:=trenutni;
  92. trenutni:=trenutni^.next;
  93. end;
  94. end;
  95. end;
  96. {------------------------------------------------------------------------------}
  97. procedura stampaj(glava:pokelement);
  98. begin
  99. while glava<>NIL do
  100. begin
  101. write (glava^.info.naziv_oblasti,' ');
  102. glava:=glava^.next;
  103. end;
  104. end;
  105. {------------------------------------------------------------------------------}
  106. procedure obrisi_listu(var glava:pokelement);
  107. var pom:pokelement;
  108. begin
  109. pom:=glava;
  110. while glava<>NIL do
  111. begin
  112. pom:=glava;
  113. glava:=pom^.next;
  114. dispose(pom);
  115. end;
  116. end;
  117. var glava:pokelement;
  118. dat:text;
  119. n:integer;
  120. prosek:real;
  121. begin
  122. assign(dat,'oblasti.txt');
  123. reset(dat);
  124. glava:=ucitaj_listu(glava,dat);
  125. nadji_prosek(glava,n,prosek);
  126. ukloni(glava,prosek);
  127. stampaj(glava);
  128. obrisi_listu(glava);
  129. close(dat);
  130. readln();
  131. readln();
  132.  
  133. end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement