Guest User

Untitled

a guest
Jun 17th, 2018
82
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pascal 1.99 KB | None | 0 0
  1. program drugi (input,output);
  2. type pok=^elem;
  3.     elem=record
  4.         sifra:integer;
  5.         kolicina:real;
  6.         naziv:string[100];
  7.         sledeci:pok;
  8.     end;   
  9. var stanje,kasa,popis:text;
  10.     prvi:pok; vreme,sifra,broj,mera:real;
  11.         si:integer;
  12.  
  13. Procedure PraviListu(var ulaz:text;var prvi:pok);
  14. var preth,novi:pok;
  15.     n,s:string;
  16.     znak:char;
  17.     sifra:integer; kolicina:real;
  18. begin
  19.         prvi:=nil;
  20.         while not eof(ulaz) do
  21.             begin
  22.             s:='';
  23.             read(ulaz,znak);
  24.             while znak<>' ' do
  25.                 begin
  26.                  s:=s+znak;
  27.                  read(ulaz,znak);
  28.                 end;
  29.             Val(s,sifra);
  30.             s:='';
  31.             read(ulaz,znak);
  32.             while znak<>' ' do
  33.                 begin
  34.                  s:=s+znak;
  35.                  read(ulaz,znak);
  36.                 end;
  37.             Val(s,kolicina);
  38.             read(ulaz,znak);
  39.             n:='';
  40.             while not eoln(ulaz) do
  41.                 begin
  42.                  n:=n+znak;
  43.                  read(ulaz,znak);
  44.                 end;
  45.             n:=n+znak; 
  46.             readln(ulaz);      
  47.             new(novi);
  48.             novi^.sifra:=sifra;
  49.             novi^.kolicina:=kolicina;
  50.             novi^.naziv:=n;
  51.             if prvi=nil then prvi:=novi
  52.             else preth^.sledeci:=novi;
  53.             preth:=novi;
  54.         end;   
  55. end;
  56.  
  57. procedure BrisiListu(var prvi:pok);
  58. var tek:pok;
  59. begin
  60.     while prvi<> nil do
  61.         begin
  62.             tek:=prvi^.sledeci;
  63.             dispose(prvi);
  64.             prvi:=tek;
  65.         end;
  66. end;       
  67.  
  68. procedure IspisListe(var izlaz:text;prvi:pok);
  69. begin
  70.  while prvi<>nil do
  71.     begin
  72.         writeln(izlaz,prvi^.sifra,' ',prvi^.kolicina:6:4,' ',prvi^.naziv);
  73.         prvi:=prvi^.sledeci;
  74.     end;
  75. end;
  76.  
  77.  
  78. Procedure Obrada( prvi:pok; sifra:integer;kolicina:real);
  79. var t:boolean;
  80. begin
  81. t:=true;
  82.  while (prvi<>nil) and t    do
  83.     begin
  84.      if(prvi^.sifra=sifra) then
  85.         begin
  86.          prvi^.kolicina:=prvi^.kolicina-kolicina;
  87.          t:=false;
  88.         end;
  89.      prvi:=prvi^.sledeci;
  90. end;
  91. end;
  92.  
  93. begin
  94. assign(stanje,'stanje.txt'); assign(kasa,'kasa.txt'); assign(popis,'popis.txt');
  95. reset(stanje);
  96. reset(kasa);
  97. rewrite(popis);
  98. PraviListu(stanje,prvi);
  99. while not eof(kasa) do
  100.         begin
  101.             readln(kasa,vreme,sifra,broj,mera);
  102.             si:=Trunc(sifra);
  103.             Obrada(prvi,si,broj*mera);
  104.         end;
  105.     IspisListe(popis,prvi);
  106. close(popis);close(stanje);close(kasa);
  107. end.
Add Comment
Please, Sign In to add comment