СМО

Автор работы: Пользователь скрыл имя, 26 Октября 2011 в 14:19, курсовая работа

Описание

За последнее время в самых разных областях жизнедеятельности человека возникла необходимость в решении различных вероятностных задач, связанных с работой так называемых систем массового обслуживания (СМО). Под системой массового обслуживания (СМО) понимают динамическую систему, предназначенную для эффективного обслуживания потока заявок (требований на обслуживание) при ограничениях на ресурсы системы.

Работа состоит из  1 файл

курсовая.doc

— 281.50 Кб (Скачать документ)

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

#pragma package(smart_init)

#pragma resource "*.dfm"

TForm1 *Form1;

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

__fastcall TForm1::TForm1(TComponent* Owner)

        : TForm(Owner)

{

}

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

void __fastcall TForm1::Button1Click(TObject *Sender)

{

  double t=0;

  double lyambda=0;

  double p0=0;

  double mu=0;

  double ro=0;

  int m=0;

  int n=0;

  double potk=0;

  double buff=0;

  double buff2=0;

  double p=0;

  double xi=0;

  double rsr=0;

  double omega=0;

  double k=0;

  double tog=0;

  double tsr=0;

  double l=0;

  double p1=0;

  double p2=0;

  double pn=0;

  double pzan=0;

  double A=0;

  double psvob=0;

  double L=0;

  double p3=0;

  double pm=0;

  double pm1=0;

  double pm2=0;

  double z=0;

  lyambda=StrToFloat(LabeledEdit1->Text);

  t=StrToFloat(LabeledEdit2->Text);

  n=StrToInt(LabeledEdit3->Text)

  m=StrToInt(LabeledEdit4->Text);

  mu=1/t;

  Memo1->Text="Параметр потока обслуживаний(mu)";

  Memo1->Text=Memo1->Text+"   "+FloatToStr(mu);

  Memo1->Text=Memo1->Text+" ";

  Memo1->Lines->Add(" ");

  ro=lyambda/mu;

  Memo1->Text=Memo1->Text+"Приведенная  интенсивность потока заявок(ro):";

  Memo1->Text=Memo1->Text+"   "+FloatToStr(ro);

  Memo1->Text=Memo1->Text+' ';

  Memo1->Lines->Add(" ");

  int fac=1;

  for(int i=1; i<=n; i++) {

  fac=fac*i;

  buff=buff+(pow(ro,i)/fac);}

  p0=1/(buff+(pow(ro,n+1)/(fac*(n-ro))));

  buff=0;

  Memo1->Text=Memo1->Text+"Вероятность того,что все каналы свободны(p0):";

  Memo1->Text=Memo1->Text+"   "+FloatToStr(p0);

  Memo1->Text=Memo1->Text+" ";

  Memo1->Lines->Add(" ");

  potk=(pow(ro,n+m)/(pow(n,m)*fac))*p0;

  Memo1->Text=Memo1->Text+"Вероятность отказа системы(все каналы заняты,все    места в очереди заняты)(potk):";

  Memo1->Text=Memo1->Text+"   "+FloatToStr(potk);

  Memo1->Text=Memo1->Text+" ";

  Memo1->Lines->Add(" ");

  Memo1->Text=Memo1->Text+"Вероятность занятости каждого из "+IntToStr(n) +" каналов:";

  fac=1;

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

  {

  fac=fac*i;

  p=(pow(ro,i)/fac)*p0;

  Memo1->Text=Memo1->Text+"   P"+IntToStr(i)+"="+FloatToStr(p);

  }

  Memo1->Text=Memo1->Text+" ";

  Memo1->Lines->Add(" ");

  omega=ro*(1-(pow(ro,n+m)*p0/pow(n,m)*fac));

  buff=0;

  fac=1;

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

  {

  fac=fac*i;

  p=(pow(ro,i)/fac)*p0;

  buff=buff+(i*p);

  }

  omega=buff;

  Memo1->Text=Memo1->Text+"Среднее число занятых каналов(omega):";

  Memo1->Text=Memo1->Text+"   "+FloatToStr(omega);

  Memo1->Text=Memo1->Text+" ";

  Memo1->Lines->Add(" ");

  k=omega+rsr;

  Memo1->Text=Memo1->Text+"Среднее число заявок, связанных с системой(k):";

  Memo1->Text=Memo1->Text+"   "+FloatToStr(k);

  Memo1->Text=Memo1->Text+" ";

  Memo1->Lines->Add(" ");

  tog=rsr/lyambda;

  Memo1->Text=Memo1->Text+"Среднее время ожидания заявки в очереди(tog):";

  Memo1->Text=Memo1->Text+"   "+FloatToStr(tog);

  Memo1->Text=Memo1->Text+" ";

  Memo1->Lines->Add(" ");

  tsr=tog+(1/mu);

  Memo1->Text=Memo1->Text+"Средняя продолжительность пребывания заявки в системе(tsr):";

  Memo1->Text=Memo1->Text+"   "+FloatToStr(tsr);

  Memo1->Text=Memo1->Text+" ";

}

Информация о работе СМО