Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 19.12.2012, 21:12   #1
midiss
Пользователь
 
Регистрация: 08.12.2011
Сообщений: 24
По умолчанию Моделирование очереди

Провести моделирование очереди в магазине с одним продавцом при пуассоновских законах распределения
попробовала сделать, что у меня не правильно
Код:
unit Unit1;
 
interface
 
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ExtCtrls, Menus, StdCtrls, jpeg;
    
type
  TForm1 = class(TForm)
    MainMenu1: TMainMenu;
    N1: TMenuItem;
    N2: TMenuItem;
    N3: TMenuItem;
    Timer1: TTimer;
    GroupBox1: TGroupBox;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    Edit1: TEdit;
    Edit2: TEdit;
    Edit3: TEdit;
    Edit4: TEdit;
    Edit5: TEdit;
    Image1: TImage;
    Image2: TImage;
    Label6: TLabel;
    Timer2: TTimer;
    procedure Timer1Timer(Sender: TObject);
    procedure N2Click(Sender: TObject);
    procedure Timer2Timer(Sender: TObject);
    procedure N3Click(Sender: TObject);
    procedure N1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
 
var
  Form1: TForm1;
  a,b,t,kol,za,k,i,l,j,ll,gdet,zanvr:Integer;
  nach,vrem,kon,pokgdet,pok,x1,y1:Integer;
  Buyx,Buyy:Integer;
  obsl,prish:Integer;
  tekvr,chas,minut:String;
  pokin:array[1..1000] of real;
  pokvr1:array[1..1000] of real;
  pokvr:array[1..1000] of real;
  prod:array[1..1000] of real;
  ogid:array[1..1000] of real;
  ob:array[1..1000] of real;
  p,s,inte,buy,x,y,maxt,tt,vr:real;
implementation
 
uses Unit2;
 
{$R *.dfm}
 
procedure TForm1.Timer1Timer(Sender: TObject);
begin
Image1.Left:=Image1.Left-30;
    If Image1.Left<112 Then
    begin
    Timer2.Enabled:=False;
    Image1.Visible:=False;
    Image1.Left:=208;
     End;
    end;
 
procedure TForm1.N3Click(Sender: TObject);
begin
  nach:=strtoint(form2.edit1.Text)*60;
  inte:=strtofloat(form2.Edit3.Text);
  kon:=strtoint(form2.edit2.Text)*60;
  pok:=0;  gdet:=1;  k:=0;  zanvr:=0;  vrem:=0;
  obsl:=0;  i:=1;  vr:=nach;  gdet:=0;  k:=1;
  x1:=290;  y1:=140;
  maxt:=random(5);   {максимальное время}
  maxt:=(maxt+1)/100;
  While vr<kon do
  begin                    {интервал прихода покупателей}
  pokin[i]:=random(7);     {в соответствии с функцией Пуассона}
  pokin[i]:=Int((1/inte)*((pokin[i]+1)/10))+1;
  tt:=(inte*pokin[i])*(exp((-inte*pokin[i])*ln(2.71)));
  If tt>maxt Then
  begin
  vr:=vr+pokin[i];
  pokvr[i]:=vr; {время прихода пок-лей}
  pokvr1[i]:=vr;
  i:=i+1;
  end;
  end;
  For l:=1 To i do
  begin     {время, кот. тратит продавец}
  prod[l]:=random(8);
  prod[l]:=Int((1/inte)*((prod[l]+1)/10))+1;
  ob[l]:=0;  ogid[l]:=0;
  end;
  i:=nach;
  timer1.enabled:=true;
  timer1.interval:=500;
end;
 
procedure TForm1.N2Click(Sender: TObject);
begin
 form1.Hide;  form2.show;
end;
 
 
procedure TForm1.Timer2Timer(Sender: TObject);
begin
Image1.Left:=Image1.Left-30;
    If Image1.Left<112 Then
    begin
    Timer2.Enabled:=False;
    Image1.Visible:=False;
    Image1.Left:=208;
    End;
end;
 
 
procedure TForm1.N1Click(Sender: TObject);
var stroka,stroka1:string;
begin
   For i:=1 To obsl do
      For i:=obsl+1 To l-1 do  {суммируем время ожидания в оч-ди}
   begin
   ob[i]:=pokvr[i]-pokvr1[i];   s:=s+ob[i];
   end;
   s:=s/(l-1); {находим среднее арифметич-ое}
   stroka1:=inttostr(gdet);
   stroka:=inttostr(round(s));
   showmessage('Среднее время ожидания в очереди покупателем равно '+stroka+' минут; простой продавца в ожидании прихода покупателей '+stroka1+' минут');
   end;
 
end.
Вложения
Тип файла: rar 6.rar (193.8 Кб, 16 просмотров)
midiss вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
С заданной целочисленной очереди организовать две: первая содержит все положительные элементы данной очереди, вторая - отрицательн wowan30002 Общие вопросы C/C++ 0 20.11.2012 17:39
Компьютерное моделирование, моделирование физических процессов. (в Excel ) Dytchi Помощь студентам 0 06.02.2012 15:54
Очереди Lucefer2007 Общие вопросы C/C++ 1 13.03.2011 16:58
Очереди anuta90 Помощь студентам 3 09.10.2010 22:07