Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- program jun_2015_II;
- type oblast=record
- broj_stanovnika:integer;
- naziv_oblasti:string[70];
- end;
- pokelement=^element;
- element=record
- info:oblast;
- next:pokelement;
- end;
- {------------------------------------------------------------------------------}
- function ucitaj_listu(var glava:pokelement; var dat:text):pokelement;
- var pom:pokelement;
- broj:integer;
- rec:string[70];
- begin
- while not eof(dat) do
- begin
- while not eoln(dat) do
- begin
- read(dat, broj, rec);
- if glava=NIL then
- begin
- new(glava);
- glava^.info.broj_stanovnika:=broj;
- glava^.info.naziv_oblasti:=rec;
- glava^.next:=NIL;
- end
- else
- begin
- pom:=glava;
- while(pom^.next<>NIL) do
- begin
- pom:=pom^.next;
- new(pom^.next);
- pom:=pom^.next;
- pom^.info.broj_stanovnika:=broj;
- pom^.info.naziv_oblasti:=rec;
- pom^.next:=NIL;
- end;
- end;
- ucitaj_listu:=glava;
- end;
- end;
- end;
- {------------------------------------------------------------------------------}
- procedura nadji_prosek(var glava:pokelement; var n:integer; var prosek:real);
- var suma:integer;
- pom:pokelement;
- begin
- pom:=glava;
- s:=0;
- n:=0;
- while (pom<>NIL) do
- begin
- suma:=pom^.info.broj_stanovnika;
- n:=n+1;
- pom:=pom^.next;
- end;
- prosek:=suma/n;
- end;
- {------------------------------------------------------------------------------}
- procedure ukloni(var glava:pokelement; prosek:real); {uklanjace oblasti koje nisu prenaseljene}
- var pom,trenutni,prethodni:pokelement;
- p:real;
- begin
- p:=prosek*2;
- prethodni:=NIL;
- trenutni:=glava;
- while(trenutni<>NIL) do
- begin
- if(trenutni^.info.broj_stanovnik<=p) then
- begin
- if prethodni=NIL then
- begin
- glava:=trenutni^.next;
- pom:=trenutni;
- trenutni:=trenutni^.next;
- dispose(pom);
- end
- else
- begin
- prethodni^.next:=trenutni^.next;
- pom:=trenutni;
- trenutni:=trenutni^.next;
- dispose(pom);
- end;
- end
- else
- begin
- prethodni:=trenutni;
- trenutni:=trenutni^.next;
- end;
- end;
- end;
- {------------------------------------------------------------------------------}
- procedura stampaj(glava:pokelement);
- begin
- while glava<>NIL do
- begin
- write (glava^.info.naziv_oblasti,' ');
- glava:=glava^.next;
- end;
- end;
- {------------------------------------------------------------------------------}
- procedure obrisi_listu(var glava:pokelement);
- var pom:pokelement;
- begin
- pom:=glava;
- while glava<>NIL do
- begin
- pom:=glava;
- glava:=pom^.next;
- dispose(pom);
- end;
- end;
- var glava:pokelement;
- dat:text;
- n:integer;
- prosek:real;
- begin
- assign(dat,'oblasti.txt');
- reset(dat);
- glava:=ucitaj_listu(glava,dat);
- nadji_prosek(glava,n,prosek);
- ukloni(glava,prosek);
- stampaj(glava);
- obrisi_listu(glava);
- close(dat);
- readln();
- readln();
- end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement