Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- program drugi (input,output);
- type pok=^elem;
- elem=record
- sifra:integer;
- kolicina:real;
- naziv:string[100];
- sledeci:pok;
- end;
- var stanje,kasa,popis:text;
- prvi:pok; vreme,sifra,broj,mera:real;
- si:integer;
- Procedure PraviListu(var ulaz:text;var prvi:pok);
- var preth,novi:pok;
- n,s:string;
- znak:char;
- sifra:integer; kolicina:real;
- begin
- prvi:=nil;
- while not eof(ulaz) do
- begin
- s:='';
- read(ulaz,znak);
- while znak<>' ' do
- begin
- s:=s+znak;
- read(ulaz,znak);
- end;
- Val(s,sifra);
- s:='';
- read(ulaz,znak);
- while znak<>' ' do
- begin
- s:=s+znak;
- read(ulaz,znak);
- end;
- Val(s,kolicina);
- read(ulaz,znak);
- n:='';
- while not eoln(ulaz) do
- begin
- n:=n+znak;
- read(ulaz,znak);
- end;
- n:=n+znak;
- readln(ulaz);
- new(novi);
- novi^.sifra:=sifra;
- novi^.kolicina:=kolicina;
- novi^.naziv:=n;
- if prvi=nil then prvi:=novi
- else preth^.sledeci:=novi;
- preth:=novi;
- end;
- end;
- procedure BrisiListu(var prvi:pok);
- var tek:pok;
- begin
- while prvi<> nil do
- begin
- tek:=prvi^.sledeci;
- dispose(prvi);
- prvi:=tek;
- end;
- end;
- procedure IspisListe(var izlaz:text;prvi:pok);
- begin
- while prvi<>nil do
- begin
- writeln(izlaz,prvi^.sifra,' ',prvi^.kolicina:6:4,' ',prvi^.naziv);
- prvi:=prvi^.sledeci;
- end;
- end;
- Procedure Obrada( prvi:pok; sifra:integer;kolicina:real);
- var t:boolean;
- begin
- t:=true;
- while (prvi<>nil) and t do
- begin
- if(prvi^.sifra=sifra) then
- begin
- prvi^.kolicina:=prvi^.kolicina-kolicina;
- t:=false;
- end;
- prvi:=prvi^.sledeci;
- end;
- end;
- begin
- assign(stanje,'stanje.txt'); assign(kasa,'kasa.txt'); assign(popis,'popis.txt');
- reset(stanje);
- reset(kasa);
- rewrite(popis);
- PraviListu(stanje,prvi);
- while not eof(kasa) do
- begin
- readln(kasa,vreme,sifra,broj,mera);
- si:=Trunc(sifra);
- Obrada(prvi,si,broj*mera);
- end;
- IspisListe(popis,prvi);
- close(popis);close(stanje);close(kasa);
- end.
Add Comment
Please, Sign In to add comment