program lol;
uses crt, windos;
label metka1, metka2, metka3, metka4, metka5, metka6;
const old='price.dat';
type Pprice=record
           Pname:string[20];
           Pvalue:real;
           end;
var price:file of Pprice;
    newprice:file of Pprice;
    p:pprice;
    i,n,z,x:integer;

procedure vivod;
begin
reset(price);
 writeln;
 writeln('⥪�騥 �����: ':25);
 writeln;
 while not eof(price) do
  begin
    read(price,p);
    write(p.pname:15);
    writeln(p.pvalue:10:2);
    writeln;
  end;
  close(price);
end;

begin
clrscr;

begin  {' otkritie '}
  setcurdir('D:');
  assign(newprice,'D:\newprice.dat');
  assign(price,'D:\price.dat');
end;

begin
metka5:
  writeln('����':20);
  writeln('������ ᮧ����� 䠩� - 0':30);
  writeln('ᮧ���� ���� 䠩�     - 1':30);
  writeln('�������� ������        - 2':30);
  writeln('।���஢��� ������   - 3':30);
  writeln('㤠���� ������         - 4':30);
  write('���                  - 5  ':32);
  readln(i);
  if i=0 then
    begin
      clrscr;
      reset(price);
      writeln;
      writeln('䠩� �����':20);
      vivod;
      goto metka5;
    end;
  if i=1 then
    begin
      clrscr;
      rewrite(price);
      writeln('䠩� ᮧ���');
      goto metka5;
    end;
  if i=2 then goto metka1;
  if i=3 then goto metka2;
  if i=4 then goto metka3;
  if i=5 then goto metka6;

end;

begin  {' dobavlenie '}
  metka1:
  reset(price);
  seek(price,filesize(price));
  write('������ �������� ⮢��  ');
  read(p.pname);
  write('������ 業�  ');
  read(p.pvalue);
  write(price,p);
  write('�������� �� ������? �� - 1, ��� - 0  ');
  readln(n);
  if n=1 then goto metka1;
close(price);
goto metka4;
end;

begin  {' i3menenie '}
  metka2:
  reset(price);
  write('������ ����� ��ப� ��� ।���஢����  ');
  readln(i);
  seek(price,i-1);
  write('������ �������� ⮢��  ');
  read(p.pname);
  write('������ 業�  ');
  read(p.pvalue);
  write(price,p);
  write('�� ।���஢���? �� - 1, ��� - 0  ');
  readln(n);
  if n=1 then goto metka2;
close(price);
clrscr;
goto metka4;
end;

begin  {' ydalenie '}
  metka3:
  setcurdir('D:');
  reset(price);
  rewrite(newprice);
  write('������ ����� ��ப� ��� 㤠�����  ');
  readln(i);
  setcurdir('D:');
  while not eof(price) do
    begin
    read(price,p);
    if filepos(price)<>i then write(newprice,p);
    end;
  close(newprice);
  close(price);
  erase(price);
  rename(newprice,old);
  assign(price,'D:\price.dat');
  write('�� 㤠����? �� - 1, ��� - 0  ');
  readln(n);
  if n=1 then goto metka3;
goto metka4;
end;

begin  {' vixod k menu '}
metka4:
clrscr;
vivod;
write('�뢥�� ���� - 1, ��室 - 0  ');
readln(n);
if n=1 then goto metka5;
end;
metka6:
end.