program baza; {$i-} {Раздел описаний} uses crt; const r=100; q=10; type buhalt=record naim_tovar:string[12]; price:string[6]; end; dinam_massiv=array[1..r] of buhalt; pro=^dinam_massiv; var Sum,n,price:integer; list:pro; answer:char; f:boolean; {Ввод данный} procedure input_baza(var list:pro;var n:integer); var i,z:integer; w:char; begin clrscr; write('Введите число записей для добавления <= ',r-n ,' : '); readln(z); if ioresult<>0 then exit; for i:=n+1 to n+z do with list^[i] do begin clrscr; write('Введите наименование товара: '); readln(naim_tovar); write('Введите цену товара (руб.): '); readln(price); if i<>n+z then begin write('Вводить еще y/n'); w:=readkey; end; if (w='n') or (i=z+n) then begin z:=i; break; end; end; if z<>0 then n:=z; writeln; writeln('Запись добавлена в базу. Нажмите любую клавишу'); readkey; end; {Вывод данных} procedure output_baza(var list:pro;var n:integer); var i,k,pos:integer; f:boolean ; convert: integer; error: integer; begin clrscr; if n=0 then begin writeln('База пуста'); readkey; exit; end; f:=false; pos:=1; sum := 0; repeat clrscr; k:=0; writeln(' ╔══════════════════════╤════════════════════╗'); writeln(' ║ Наименование товара │ Цена товара (руб.) ║'); writeln(' ╚══════════════════════╧════════════════════╝'); for i:=pos to n do with list^[i] do begin val(price, convert, error); sum := sum + convert; writeln(' ',naim_tovar:12,' ',price:6); k:=k+1; if k=q then begin pos:=i+1; break; end; writeln(' ─────────────────────────────────────────── '); end; writeln(' Общая цена товара (руб.)',' ',sum); readkey; if (kn) then f:=true; until f; end; {Головной модуль} begin new(list); f:=false; repeat clrscr; writeln('0 - Выход'); writeln('1 - Добавление данных'); writeln('2 - Вывод базы'); answer:=readkey; case answer of '0': f:=true; '1': input_baza(list,n); '2': output_baza(list,n); else begin writeln('Ошибка! Для продолжения нажмите любую клавишу'); readkey end; end; until f; dispose(list); end.