Контрольная работа по "Информатике"

Автор работы: Пользователь скрыл имя, 07 Декабря 2011 в 13:05, контрольная работа

Краткое описание

Определить следующие величины:
- количество прибывших автомобилей, количество клиентов, получивших отказ;
- вероятность того, что прибывающий клиент не сможет воспользоваться услугами банковского автомата;
- вероятность того, что прибывающий клиент обслуживается без ожидания;
- среднее время ожидания клиента в очереди.
Смоделировать работу банкомата в течение суток

Содержимое работы - 1 файл

моделирование банка.docx

— 244.64 Кб (Скачать файл)

Задание: 
Банк имеет один пункт, где клиенты обслуживаются банковским автоматом не выходя из автомобиля. Автомобили пребывают в среднем с интенсивностью
12 автомобилей в час. Среднее время, необходимое для обслуживания клиента банкоматом, равно 6 мин. Максимальная вместимость полосы обслуживания банкоматом составляет 10 автомобилей. При заполненной полосе прибывающие клиенты должны искать обслуживание в другом банке. Определить следующие величины: 
- количество прибывших автомобилей, количество клиентов, получивших отказ; 
- вероятность того, что прибывающий клиент не сможет воспользоваться услугами банковского автомата; 
- вероятность того, что прибывающий клиент обслуживается без ожидания; 
- среднее время ожидания клиента в очереди. 
Смоделировать работу банкомата в течение суток 
 
 
 
Исходный код программы для Delphi 7:

unit Unit1; 
 
interface 
 
uses 
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, 
Dialogs, StdCtrls,Math; 
 
type 
TForm1 = class(TForm) 
Button1: TButton; 
Edit1: TEdit; 
Label1: TLabel; 
Label2: TLabel; 
Edit2: TEdit; 
Label3: TLabel; 
Edit3: TEdit; 
Label4: TLabel; 
Label5: TLabel; 
Edit4: TEdit; 
Label6: TLabel; 
Edit5: TEdit; 
Label7: TLabel; 
Label8: TLabel; 
Edit6: TEdit; 
Label9: TLabel; 
Edit7: TEdit; 
Label10: TLabel; 
Edit8: TEdit; 
Label11: TLabel; 
procedure Button1Click(Sender: TObject); 
private 
{ Private declarations } 
public 
{ Public declarations } 
end; 
 
var 
Form1: TForm1; 
 
implementation 
 
{$R *.dfm} 
 
procedure TForm1.Button1Click(Sender: TObject); 
var 
K,p,i,io,n,m:integer;ro,Potk,Pbo,tz,bTz,tobsl,Tzvezda:real; 
landa,Toc,T,Tk,Mi,R,Trazg:real; 
Tin: array [0..300] of real; 
Tout: array [0..300] of real; 
begin 
Landa:=Strtofloat(edit1.Text);//интенсивность автомобилей в час 
Trazg:=Strtofloat(Edit2.Text)/60;//среднее время 
Mi:=1/Trazg; 
Tk:=12;//часов в сутки 
P:=Strtoint(Edit3.Text);//емкость накопителя 
ro:= Landa/ Mi; 
T := 0; 
Tzvezda := 0; 
K := 0; 
n := 0; // обслужено 
m := 0; // отказано 
Pbo:=0; 
i:=0; 
io:=0; 
Randomize; 
R:=random; 
tz := (1/Landa)*Ln(R); 
bTz:=T+tz; 
while T < Tk do 
begin 
if Tzvezda > bTz then begin 
T := bTz; 
K := K+1; 
if p+1 >= k then 
begin 
n := n+1; 
end 
else 
begin 
m := m+1; 
k := k-1; 
end; 
if K = 1 then 
begin 
R := random; 
tobsl := -(1/Mi)*ln(R); 
Tzvezda := bTz+tobsl; 
Pbo:=Pbo+1; 
end 
else 
begin 
Tin[i] := T; 
i := i+1; 
end; 
if K > 0 then begin 
R:=random; 
tobsl := -(1/Mi)*ln(R); 
Tzvezda := bTz+tobsl; 
end; 
R:=Random; 
tz := -(1/Landa)*ln(R); 
bTz := bTz+tz; end 
else begin 
T := Tzvezda; 
if K > 0 then begin 
K := K-1; 
end; 
if K = 0 then begin 
Tzvezda := Tk; 
end else 
begin 
Tout[io]:=T; 
io:=io+1; 
R:=Random; 
tobsl := -(1/Mi)*Ln(R); 
Tzvezda := T+Tobsl; 
end; end;end; 
//вычисление характеристик 
n:=n-K; 
Toc:=0; 
for i:= 0 to io-1 do begin 
Toc:=Toc+Tout[i]-Tin[i]; 
end; 
Toc:=Toc/io;// клиентов прибыло 
Edit4.Text:=inttostr(n+m);//количество отказов 
Edit5.Text:=inttostr(m);// n-m количество обслуженных машин 
//вероятность отказа 
Potk:=m/(n+m); 
Edit6.Text:=floattostr(Potk); 
// вероятность что будет обслужена без очереди 
Pbo := Pbo/(Pbo+io); 
//Pbo:=1-Potk; 
Edit7.Text:=floattostr(Pbo); 
// время ожидания 
Edit8.Text:=floattostr(Toc); 
end; 
end.

 

Информация о работе Контрольная работа по "Информатике"