12149

Моделирование работы оптового склада

Лабораторная работа

Информатика, кибернетика и программирование

Лабораторная работа № 3 Моделирование работы оптового склада Задание Имеется rмалое предприятий каждое из которых выпускает продукцию отличную друг от друга. Есть потребители их m они торгуют в розницу ежедневно закупая товары с оптового склада. Потребит

Русский

2013-04-24

419 KB

4 чел.

Лабораторная работа № 3

Моделирование работы оптового склада

Задание

Имеется r-малое предприятий каждое, из которых выпускает продукцию отличную друг от друга. Есть потребители, их m, они торгуют в розницу, ежедневно закупая товары с оптового склада. Потребитель может закупать несколько видов товара но не все, и они могут отказаться от покупок на какой то день. Задан спрос каждого потребителя. На складе к концу дня остается Сj единиц товара. Пусть l j это минимальный остаток j ого товара на конец дня. Если  то оптовый склад делает заказ предприятиям на производство Rj единиц товара, который к утру следующего дня будет изготовлен и доставлен на склад. Если , то заказа на производство не будет. И склад будет реализовывать не проданный товар. Таким образом, к следующему дню на оптовом складе находится некоторое кол-во bj товара и если, мы будем рассматривать процесс в нулевой точке, то . Необходимо построить модель данной системы и провести вычислительный эксперимент. Определить такие Rj и lj, которые обеспечивают 95% заявок потребителей

Алгоритм

Пояснение переменных

  •  - минимальное число мест на складе под j  товар, при котором еще не требуется дополнительных закупок на предприятии

  •  - кол-во j ого товара на начало дня после произведения закупок всеми потребителями в предыдущий день и выполнения заказов на производство товаров предприятиям

  •  - заказ оптового склада предприятиям на следующий день

  •   остаток j ого товара после удовлетворения всех заявок покупателей на текущий день

  •   заявки i-ого потребителя на j-й товар

  •   суммарные заявки всех потребителей на j-товар на текущий день

  •  А- суммарная заявка потребителей на все товары на текущий день

  •  А1- суммарная заявка потребителей на все виды товара с первого дня моделирования по текущий день

  •  S- текущий день моделирования

  •  G- период моделирования

  •  - кол-во j ого товара, которого не хватило для удовлетворения заявок потребителей на j-ый товар, начиная с 1-ого дня моделирования на текущий день

  •   общее число заявок потребителей на j –ый товар с первого дня моделирования по текущий день

  •  -доля j-ого товара, не выданного потребителям к общему числу заявок за весь перед моделирования

  •  H- общее кол-во неудовлетворенных заявок потребителей за весь период моделирования

  •  L- доля всех не выполненных заявок потребителей к общему числу заявок за весь период моделирования.

Листинг программы

Генерация заявок на текущий день

procedure TForm1.Button1Click(Sender: TObject);

begin

for i:=1 to m do

for j:=1 to r do

Begin

q:=random(100)-50;

if q<0 then q:=0;

stringgrid1.Cells[j,i]:=inttostr(q);

 end;

end;

Расчет текущего дня

procedure TForm1.Button2Click(Sender: TObject);

begin

try

for i:=1 to r do

begin

q:=0;

  for j:=1 to m do

  q:=q+strtoint(stringgrid1.Cells[i,j]);

stringgrid2.Cells[i-1,0]:=inttostr(q);

end;

q:=0;

for i:=0 to r-1 do

q:=q+strtoint(stringgrid2.Cells[i,0]);

edit4.Text:=inttostr(q);

for i:=0 to r-1 do

stringgrid3.Cells[i,0]:=inttostr(strtoint(stringgrid3.Cells[i,0])+strtoint(stringgrid2.Cells[i,0]));

for i:=0 to r-1 do

stringgrid5.Cells[i,0]:=inttostr(strtoint(stringgrid4.Cells[i,0])-strtoint(stringgrid2.Cells[i,0]));

for i:=0 to r-1 do

if strtoint(stringgrid5.Cells[i,0])<0 then stringgrid6.Cells[i,0]:=inttostr(strtoint(stringgrid6.Cells[i,0])+abs(strtoint(stringgrid5.Cells[i,0])));

for i:=0 to r-1 do

  begin

  if strtoint(stringgrid5.Cells[i,0])<strtoint(stringgrid8.Cells[i,0]) then stringgrid7.Cells[i,0]:=inttostr(strtoint(stringgrid8.Cells[i,0])-strtoint(stringgrid5.Cells[i,0])+random(30))

  else stringgrid7.Cells[i,0]:=inttostr(0);

  end;

edit5.Text:=inttostr(strtoint(edit4.Text)+strtoint(edit5.Text));

for i:=0 to r-1 do

begin

if strtoint(stringgrid3.Cells[i,0])<>0 then w:=(strtoint(stringgrid6.Cells[i,0]))/(strtoint(stringgrid3.Cells[i,0]))

else w:=0;

stringgrid9.Cells[i,0]:=floattostrf(w,fffixed,2,4);

end;

q:=0;

for i:=0 to r-1 do

q:=q+strtoint(stringgrid6.Cells[i,0]);

edit6.Text:=inttostr(q);

w:=strtoint(edit6.Text)/strtoint(edit5.Text);

edit7.Text:=floattostr(w);

button2.Enabled:=false;

button3.Enabled:=true;

except showmessage('Проверьте корректность введенных данных');

end;

end;

Переход на следующий день

procedure TForm1.Button3Click(Sender: TObject);

begin

for i:=0 to r-1 do

 begin

 if (strtoint(stringgrid5.Cells[i,0])<0) then stringgrid4.Cells[i,0]:=stringgrid7.Cells[i,0];

 if (strtoint(stringgrid5.Cells[i,0])>=0) and (strtoint(stringgrid5.Cells[i,0])>strtoint(stringgrid8.Cells[i,0])) then stringgrid4.Cells[i,0]:=stringgrid5.Cells[i,0];

 if (strtoint(stringgrid5.Cells[i,0])>=0) and (strtoint(stringgrid5.Cells[i,0])<strtoint(stringgrid8.Cells[i,0])) then stringgrid4.Cells[i,0]:=inttostr(strtoint(stringgrid5.Cells[i,0])+strtoint(stringgrid7.Cells[i,0]));

 end;

button2.Enabled:=true;

button3.Enabled:=false;

edit8.Text:=inttostr(1+strtoint(edit8.Text));

end;

Переход на G дней

procedure TForm1.Button4Click(Sender: TObject);

begin

for i:=1 to strtoint(edit1.Text) do

  begin

  button1.Click;

  button2.Click;

  button3.Click;

  end;

button1.Click;

end;

Результаты моделирования

Исходные данные:

r=10; m=5; G=20; Заявки потребителей рассчитываются по формуле q:=random(100)-50;

Тест № 1

Минимальное число мест на складе под j  товар, при котором еще не требуется дополнительных закупок на предприятии :

40, 46, 60, 44, 52, 54, 65, 48, 51, 49

Заказ оптового склада предприятиям на следующий день  рассчитывается по формуле:

for i:=0 to r-1 do

  begin

  if strtoint(stringgrid5.Cells[i,0])<strtoint(stringgrid8.Cells[i,0]) then stringgrid7.Cells[i,0]:=inttostr(strtoint(stringgrid8.Cells[i,0])-strtoint(stringgrid5.Cells[i,0])+random(30))

  else stringgrid7.Cells[i,0]:=inttostr(0);

  end;

Доля всех не выполненных заявок потребителей к общему числу заявок за весь период моделирования    L=0,15969

Тест № 2

Минимальное число мест на складе под j  товар, при котором еще не требуется дополнительных закупок на предприятии :

51, 60, 83, 58, 71, 73, 92, 64, 68, 66

Заказ оптового склада предприятиям на следующий день  рассчитывается по формуле:

for i:=0 to r-1 do

  begin

  if strtoint(stringgrid5.Cells[i,0])<strtoint(stringgrid8.Cells[i,0]) then stringgrid7.Cells[i,0]:=inttostr(strtoint(stringgrid8.Cells[i,0])-strtoint(stringgrid5.Cells[i,0])+random(50)+10)

  else stringgrid7.Cells[i,0]:=inttostr(0);

  end;

Доля всех не выполненных заявок потребителей к общему числу заявок за весь период моделирования   L=0,05970

Тест № 3

Минимальное число мест на складе под j  товар, при котором еще не требуется дополнительных закупок на предприятии :

61, 72, 100, 69, 85, 88, 110, 77, 82, 72

Заказ оптового склада предприятиям на следующий день  рассчитывается по формуле:

for i:=0 to r-1 do

  begin

  if strtoint(stringgrid5.Cells[i,0])<strtoint(stringgrid8.Cells[i,0]) then stringgrid7.Cells[i,0]:=inttostr(strtoint(stringgrid8.Cells[i,0])-strtoint(stringgrid5.Cells[i,0])+random(60)+20)

  else stringgrid7.Cells[i,0]:=inttostr(0);

  end;

Доля всех не выполненных заявок потребителей к общему числу заявок за весь период моделирования   L=0,02519  


 

А также другие работы, которые могут Вас заинтересовать

51452. VISUAL BASIC 6.0. Обчислювальна техніка і програмування 2.27 MB
  Навчальний посібник присвячений оволодінню найпопулярнішою системою швидкої розробки програм. У методичному матеріалі описуються інструментальні засоби середовища Visual Basic.6 і розглядаються компоненти, властивості, методи та події, необхідні для розроблення широкого спектру базових програм, за допомогою яких студенти навчаються програмуванню.
51453. ФОРМИРОВАНИЕ ПРЕДСТАВЛЕНИЙ О ДОМАШНИХ ЖИВОТНЫХ У ДЕТЕЙ МЛАДШЕГО ДОШКОЛЬНОГО ВОЗРАСТА С ОБЩИМ НЕДОРАЗВИТИЕМ РЕЧИ 3 УРОВНЯ СРЕДСТВАМИ ХУДОЖЕСТВЕННОЙ ЛИТЕРАТУРЫ 881.83 KB
  Экспериментальная работа по формированию представлений о домашних животных у детей младшего дошкольного возраста с общим недоразвитием речи 3 уровня средствами художественной литературы. Теоретические основы формирования представления о домашних животных средствами художественной литературы
51454. Шаншуға арналған ерітінділерді тұрақтандыру 39.11 KB
  Шаншуға арналған ерітінділерді стрильдеу процесінде және сақтаған кезде, кейбір дәрілік заттар ыдырап,оларды тұрақтандыру қажеттілігін тудырады. Ерітінділердегі дәрілік заттардың ыдырау себебі-гидролиз және тотығу-тотықсыздану реакциялары есебінен жүреді.
51455. ТЕПЛОВОЙ РАСЧЕТ ХОЛОДИЛЬНОЙ УСТАНОВКИ 7.18 MB
  В учебном пособии рассмотрены термодинамические основы холодильных машин, действительный рабочий процесс в поршневом компрессоре, конструкции и методика теплового расчета испарителей и конденсаторов, рекомендации по подбору элементов. Для курсового проектирования по дисциплине «Тепломассообменное оборудование предприятий» студентами специальности «Промышленная теплоэнергетика» и бакалаврами направления «Теплоэнергетика и теплотехника».
51456. Совершенствование налогового контроля бюджетных организаций 218 KB
  Налоговая система Республики Беларусь является важнейшим элементом развития рыночной экономики. Именно налоги составляют доходную часть федерального, региональных и местных бюджетов страны...
51457. Исследование компенсационных стабилизаторов напряжения 3.42 MB
  Цель работы: изучение схемотехники компенсационных стабилизаторов постоянного напряжения с непрерывным регулированием и исследование основных типов таких устройств.
51460. Сумматор 125.5 KB
  Требуется спроектировать шестнадцатиразрядный сумматор дробных чисел со знаком и плавающей точкой