uses crt;
const nmax=50;
type sclad=record
naz:string[20];
kol:word;
cn1,cn2:word;
src:byte;
st1,st2:longint;
end;
var t:array[1..nmax] of sclad;
k,i,n,m:byte;
mxsr,mnsr:byte;
mxc1,mnc1,mxc2,mnc2:word;
begin
clrscr;
{ввод данных}
repeat
write('Количество товаров до ',nmax,' k=');
readln(k);
until k in [1..nmax];
writeln('Введите данные о товарах:');
for i:=1 to k do
begin
writeln('Товар ',i);
with t[i] do
begin
write(' Наименование: ');readln(naz);
write(' Количество: ');readln(kol);
repeat
write(' Цена до уценки от 100 до 1000: ');
readln(cn1);
until(cn1>99)and(cn1<1001);
repeat
write(' Срок хранения на складе от 1 до 36: ');
readln(src);
until src in [1..36];
st1:=kol*cn1;{стоимость до уценки}
end;
end;
clrscr;
{уценка, поиск макс и мин срока и цены до уценки}
repeat
writeln('Введите 2 критерия уценки, количество месяцев от 1 до 24 m<n');
readln(m,n);
until(m>0)and(n>m)and(m<25);
mxsr:=t[1].src;
mnsr:=t[1].src;
mxc1:=t[1].cn1;
mnc1:=t[1].cn1;
for i:=1 to k do
begin
if (t[i].src>=m)and(t[i].src<=n)then t[i].cn2:=round(t[i].cn1/1.5)
else if t[i].src>n then t[i].cn2:=round(t[i].cn1/2)
else t[i].cn2:=t[i].cn1;
if t[i].src>mxsr then mxsr:=t[i].src;
if t[i].src<mnsr then mnsr:=t[i].src;
if t[i].cn1>mxc1 then mxc1:=t[i].cn1;
if t[i].cn1<mnc1 then mnc1:=t[i].cn1;
t[i].st2:=t[i].kol*t[i].cn2;{новая стоимость}
end;
writeln('Ведомость товаров на cкладе:':40);
writeln('---------------------------------------------------------------');
writeln('| | | Цена | Стоимость |');
writeln('| Наименование | Срок |---------------------------------------|');
writeln('| | |до уценки| после |до уценки| после |');
writeln('---------------------------------------------------------------');
mxc2:=t[1].cn2;
mnc2:=t[1].cn2;
for i:=1 to k do
begin
with t[i] do
begin
gotoXY(1,whereY);write('| ',naz);
gotoXY(16,whereY);write('|',src:4);
gotoXY(23,whereY);write('|',cn1:9);
gotoXY(33,whereY);write('|',cn2:9);
gotoXY(43,whereY);write('|',st1:9);
gotoXY(53,whereY);write('|',st2:9);
gotoXY(63,whereY);writeln('|');
end;
{макс и мин цена после уценки}
if t[i].cn2>mxc2 then mxc2:=t[i].cn2;
if t[i].cn2<mnc2 then mnc2:=t[i].cn2;
end;
writeln('---------------------------------------------------------------');
write('Press Enter...');
readln;
writeln('Максимальный срок хранения =',mxsr);
writeln('Минимальный срок хранения =',mnsr);
writeln('Максимальная цена до уценки =',mxc1);
writeln('Минимальная цена до уценки =',mnc1);
writeln('Максимальная цена после уценки=',mxc2);
writeln('Минимальная цена после уценки =',mnc2);
readln
end.
Спасибо
Популярные вопросы