program listy; uses crt; type produkt=record nazwa:string; cena:real; ilosc:integer; end; wskel=^element; element=record p:produkt; n:wskel; end; hurtwsk=^nazwa_hurt; nazwa_hurt=record hurtownia:string; prod:wskel; r:byte; c:real; h:hurtwsk; end; procedure wypisz(lista_hurt:hurtwsk); var i:byte; lista1:hurtwsk; begin lista1:=lista_hurt; writeln(' NAZWA CENA ILOSC'); while lista1<>NIL do begin writeln('HURTOWNIA ',lista1^.hurtownia); for i:=1 to 19 do write(chr(196)); write(chr(194)); for i:=1 to 11 do write(chr(196)); write(chr(194)); for i:=1 to 10 do write(chr(196)); writeln; while (lista1^.prod<>NIL) and (lista1^.h^.prod<>NIL) do begin write(lista1^.prod^.p.nazwa:18,' ',chr(179)); write(lista1^.prod^.p.cena:10:2,' ',chr(179)); writeln(lista1^.prod^.p.ilosc:10); lista1^.prod:=lista1^.prod^.n; end; writeln; lista1:=lista1^.h; end; writeln; end; procedure wypisz_zam(lista_zam:wskel); var i:byte; lista2:wskel; begin lista2:=lista_zam; writeln('ZAMOWIENIE'); writeln(' NAZWA ILOSC'); for i:=1 to 19 do write(chr(196)); write(chr(194)); for i:=1 to 10 do write(chr(196)); writeln; while lista2<>NIL do begin write(lista2^.p.nazwa:18,' ',chr(179)); writeln(lista2^.p.ilosc:10); lista2:=lista2^.n; end; writeln; end; procedure wypisz_dost(lista_hurt:hurtwsk); var i:byte; lista3:hurtwsk; begin lista3:=lista_hurt; while lista3<>NIL do begin writeln('HURTOWNIA ',lista3^.hurtownia); for i:=1 to 19 do write(chr(196)); write(chr(194)); for i:=1 to 11 do write(chr(196)); write(chr(194)); for i:=1 to 10 do write(chr(196)); writeln; while (lista3^.prod<>NIL) and (lista3^.h^.prod<>NIL) do begin write(lista3^.prod^.p.nazwa:18,' ',chr(179)); write(lista3^.prod^.p.cena:10:2,' ',chr(179)); write(lista3^.prod^.p.ilosc:10); lista3^.prod:=lista3^.prod^.n; end; writeln; write('DOSTEPNE : ',lista3^.r); writeln(' CENA : ',lista3^.c:5:2); lista3:=lista3^.h; end; writeln; end; var hurt:text; f,zam_file:file of produkt; hurtow,lista_hurt,lista5:hurtwsk; e,lista_e,lista_zam,zamow,lista4:wskel; txt1:string; pr:produkt; cena:real; dost:byte; begin clrscr; assign(hurt,'hurt.txt'); reset(hurt); lista_hurt:=NIL; while not eof(hurt) do begin readln(hurt,txt1); new(hurtow); hurtow^.hurtownia:=txt1; assign(f,txt1); reset(f); lista_e:=NIL; while not eof(f) do begin new(e); read(f,pr); e^.p:=pr; e^.n:=lista_e; lista_e:=e; end; close(f); hurtow^.prod:=lista_e; hurtow^.h:=lista_hurt; lista_hurt:=hurtow; end; close(hurt); {wypisz(lista_hurt);} assign(zam_file,'zam.bin'); reset(zam_file); lista_zam:=NIL; while not eof(zam_file) do begin new(zamow); read(zam_file,pr); zamow^.p:=pr; zamow^.n:=lista_zam; lista_zam:=zamow; end; readln; clrscr; wypisz_zam(lista_zam); cena:=0; lista5:=lista_hurt; while lista_hurt<>NIL do begin lista_hurt^.r:=1; lista_hurt^.c:=0; while lista_zam<>NIL do begin dost:=0; writeln(lista_zam^.p.nazwa); writeln(lista_hurt^.prod^.p.nazwa); while lista_hurt^.prod<>NIL do begin writeln(lista_hurt^.prod^.p.nazwa); if (lista_zam^.p.nazwa=lista_hurt^.prod^.p.nazwa) and (lista_zam^.p.ilosc<=lista_hurt^.prod^.p.ilosc) then begin writeln('cos3'); writeln(lista_hurt^.prod^.p.cena:8:2,' ',lista_zam^.p.ilosc); cena:=lista_hurt^.prod^.p.cena*lista_zam^.p.ilosc; lista_hurt^.c:=lista_hurt^.c+cena; dost:=1; end; lista_hurt^.prod:=lista_hurt^.prod^.n; end; lista_hurt^.r:=lista_hurt^.r*dost; lista_zam:=lista_zam^.n; end; lista_hurt:=lista_hurt^.h; end; readln; wypisz_dost(lista_hurt); readln; end.