Работа 3.9 Упр.23 ГДЗ Семакин 10 класс (Информатика)
Рассмотрим вариант решения задания из учебника Семакин, Хеннер, Шеина 10 класс, Бином: 23. Торговый склад производит уценку хранящейся продукции. Если продукция хранится на складе дольше n месяцев, то она уценивается в 2 раза, а если срок хранения превысил m (m < n) месяцев, но не достиг n, то — в 1,5 раза. Получить ведомость уценки товаров, которая должна содержать следующую информацию: наименование товара, количество товара, цена товара до уценки, срок хранения товара, цена товара после уценки, общая стоимость товара до уценки, общая стоимость товара после уценки. Выяснить максимальный и минимальный сроки хранения товаров на складе; максимальную и минимальную цену товаров до уценки и после уценки. *Цитирирование задания со ссылкой на учебник производится исключительно в учебных целях для лучшего понимания разбора решения задания. 10 semakin10 pract/3-9/23 98
Для каждого товара храним:
- наименование;
- количество;
- цену до уценки;
- срок хранения;
- цену после уценки;
- общую стоимость до уценки;
- общую стоимость после уценки.
Если срок хранения товара больше $$n$$ месяцев, то цена уменьшается в 2 раза. Если срок хранения больше $$m$$, но не превышает $$n$$, то цена уменьшается в 1,5 раза. Иначе цена не меняется.
При обработке всех записей одновременно находим:
- максимальный и минимальный срок хранения;
- максимальную и минимальную цену до уценки;
- максимальную и минимальную цену после уценки.
const nmax=50;
type sklad=record
naz:string[20];
kol:word;
cn1,cn2:word;
src:byte;
st1,st2:longint;
end;
var t:array[1..nmax] of sklad;
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;
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(‘Ведомость товаров на складе:’);
writeln(‘—————————————————————‘);
writeln(‘| Наименование | Срок | Цена | Стоимость |’);
writeln(‘| | | до уценки после | до уценки | после |’);
writeln(‘—————————————————————‘);
mxc2:=t[1].cn2;
mnc2:=t[1].cn2;
for i:=1 to k do
begin
with t[i] do
begin
write(naz,’ ‘,src,’ ‘,cn1,’ ‘,cn2,’ ‘,st1,’ ‘,st2);
writeln;
end;
if t[i].cn2>mxc2 then mxc2:=t[i].cn2;
if t[i].cn2<mnc2 then mnc2:=t[i].cn2;
end;
writeln(‘—————————————————————‘);
writeln(‘Максимальный срок хранения = ‘,mxsr);
writeln(‘Минимальный срок хранения = ‘,mnsr);
writeln(‘Максимальная цена до уценки = ‘,mxc1);
writeln(‘Минимальная цена до уценки = ‘,mnc1);
writeln(‘Максимальная цена после уценки = ‘,mxc2);
writeln(‘Минимальная цена после уценки = ‘,mnc2);
end.
Ответ: программа формирует ведомость уценки товаров и выводит максимальные и минимальные значения сроков хранения и цен до/после уценки.