Оптовая база вмещает 12 т продукции. Запасы
продукции могут пополняться и продаваться в начале каждого из 4 месяцев, причем
продажа предшествует пополнению. Хранение 1 т продукции в течение К-го месяца обходится в А руб., а продажа того
же количества в начале К-го месяца приносит доход В руб. Коэффициенты А и Б представлены в
таблице:
К |
1
|
2
|
3
|
4
|
А
|
10
|
15
|
10
|
6
|
В |
7
|
12
|
9
|
8
|
Начальное количество продукции на базе составляет 5 т.
Определить количество продукции, которое в
начале каждого месяца следует принимать на хранение и продавать, чтобы
суммарная прибыль базы за 4 месяца была максимальной, считая, что к концу
рассматриваемого периода на базе должно остаться 4 т продукции.
Решение задания
Я долго думал и не мог понять что вообще от меня требуется. После получаса размышлений понял.
Решение задачи заключается в том чтобы найти в каком месяце
следует хранить продукцию чтобы в следующем месяце продать её дороже чем мы
потратили на хранение. То есть должно выполнятся условие в i-м месяце хранение стоит дешевле чем
продажа в i+1 месяце, иначе склад работает себе в убыток и
эффективнее не хранить продукцию.
#include
<stdio.h>
#include <string.h>
#include <conio.h>
#include <ctype.h>
#include <locale.h>
void main()
{
setlocale
(LC_ALL, "Russian");
int ar[4]={10,15,10,6};//расход
в течении к-го месяца(за 1т хранения)
int bd[4]={7,12,9,8};//
доход за продажу 1т продукции
int i;
// Суть в том что сравниваем значения ar[i] и bd[i+1]
// если ar[i]>bd[i+1] то расход на хранение больше чем
доход на продажу
// хранить нужно 0 тонн
// если ar[i]<bd[i+1] то расход на хранение меньше чем
доход на продажу
// хранить нужно 12 тонн
int pr[4],xr[4],PR;
pr[0]=5*bd[0];
PR=pr[0];
printf("1.продали 5*%d = +%d\n",bd[0],pr[0]);
for(i=0;i<3;i++)
{
if(ar[i]<bd[i+1])
{
xr[i]=12*ar[i];
PR=PR-xr[i];
printf("%d.хранение 12*%d = -%d\n",i+1,ar[i],xr[i]);
pr[i]=12*bd[i+1];
PR=PR+pr[i];
printf("%d.продали 12*%d = +%d\n",i+2,bd[i+1],pr[i]);
}
else
{
xr[i]=0*ar[i];
PR=PR-xr[i];
printf("%d.хранение 0*%d = -%d\n",i+1,ar[i],xr[i]);
pr[i]=0*bd[i+1];
PR=PR+pr[i];
printf("%d.продали 0*%d = +%d\n",i+2,bd[i+1],pr[i]);
}
}
xr[3]=4*ar[3];
printf("4.хранение 4*%d = -%d\n",ar[3],xr[3]);
PR=PR-xr[3];
printf("ПРИБЫЛЬ = %d",PR);
getch();
}
Результат работы программы
Судя по полученным данным прибыль при данных
К |
1
|
2
|
3
|
4
|
А
|
10
|
15
|
10
|
6
|
В |
7
|
12
|
9
|
8
|
составила 35
рублей(144-120-24+35=35)
Комментариев нет:
Отправить комментарий