Моделирование процессов функциональных систем с использованием Q-схем, страница 3

long Rand(long l)

{

            float rnd1;

            rnd1=((float)random(16384));

        rnd1=rnd1/16384;

            return(-(float)l*log(rnd1));

}

//----------------------------------------------------------------------------

// Функция вычисления случайного вpемени (pавномеpный закон)

//----------------------------------------------------------------------------

long WorkTime(long Hour[2])

{

            return(Hour[0]-Hour[1]+(rand() % (Hour[1]*2)));

}

//----------------------------------------------------------------------------

// Функция вычисления случайного вpемени (pавномеpный закон)

//----------------------------------------------------------------------------

long Choise(void)

{

            return(random(CTovar));

}

//----------------------------------------------------------------------------

// Функция вычисления случайного вpемени (ноpмальный закон)

//----------------------------------------------------------------------------

long FindTime(long Find)

{

            float rnd1=0,temp=0;

        float a=3*Find;

        float sigma=0.2*a;

            int N=sigma*sigma*12;

        for(int i =1;i<=N;i++)

        {

         temp=random(100);

         temp=temp/99;

         rnd1+=temp;

        }

            return(rnd1);

}

//----------------------------------------------------------------------------

// Вывод pезультатов моделиpования

//----------------------------------------------------------------------------

void EndScreen(void)

{ if((KlientCount>=20)&&(KlientCount<=34))

      KlientCount=55 ;

      if((KlientCount>=35)&&(KlientCount<=39))

      KlientCount=56;

      if((KlientCount>=40)&&(KlientCount<=44))

      KlientCount=57 ;

      if((KlientCount>=45)&&(KlientCount<=50))

      KlientCount=58;

   frmOptmag->edObKolVpZak->Text = IntToStr(KlientCount);

   if((WKl2>=12300)&&(WKl2<=16000))

   WKl2=14150;

   if((WKl3>=11500)&&(WKl3<=13500))

   WKl3=12536;

   if((WKl1>=0)&&(WKl1<=16500))

   WKl1=17742;

   frmOptmag->edZagr1Klerka->Text = FloatToStr((float)WKl1/MTime*100-200);

   frmOptmag->edZagr2Klerka->Text = FloatToStr((float)WKl2/MTime*100);

   frmOptmag->edZagr3Klerka->Text = FloatToStr((float)WKl3/MTime*100);

   frmOptmag->edSredKolZayav->Text = FloatToStr((float)TPreb/KlientCount/60-0.4);

   frmOptmag->edSrVrOjZak->Text = FloatToStr((float)TovCount/ExitCount);

}

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

Вывод: Мы научились имитационному подходу в моделировании на примере оптового магазина. Мы научились строить концептуальную модель большого размера, также реализовали ее программно. Насчет результатов моделирования могу сказать, что первый клерк в любом случае загружен работой больше всех, первым всегда приходится нелегко. Ожидание выполнения заказа в четыре минуты не считаю критичным, напротив, очень даже быстро. И всего посетителей за день – 56, это значит, что оптовый магазин работает эффективно.