Дипломный проект - Организация абонентского доступа в городе Уральск - файл n13.txt

Дипломный проект - Организация абонентского доступа в городе Уральск
скачать (1266.5 kb.)
Доступные файлы (19):
n1.doc299kb.27.04.2010 10:31скачать
n2.doc523kb.27.04.2010 10:29скачать
n3.doc181kb.27.04.2010 10:28скачать
n4.doc110kb.27.04.2010 10:28скачать
n5.doc29kb.27.04.2010 10:28скачать
-8BC9~1.doc95kb.29.11.2005 17:11скачать
EF45~1.doc59kb.29.11.2005 17:11скачать
n8.exe
n9.exe
n10.doc64kb.29.11.2005 17:11скачать
n11.txt4kb.01.06.2004 23:05скачать
n12.doc82kb.29.11.2005 17:11скачать
n13.txt6kb.01.06.2004 21:12скачать
n14.doc53kb.29.11.2005 17:11скачать
n15.txt3kb.02.06.2004 12:35скачать
n16.doc56kb.29.11.2005 17:11скачать
n17.doc382kb.27.04.2010 10:26скачать
n18.doc1198kb.27.04.2010 10:27скачать
n19.doc57kb.27.04.2010 10:31скачать

n13.txt


unit Kachestv;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Grids, StdCtrls, ExtCtrls, Menus,ShellApi;

type
  TForm1 = class(TForm)
    tblIn: TStringGrid;
    edN: TLabeledEdit;
    btnRaschet: TButton;
    edT: TLabeledEdit;
    edV: TLabeledEdit;
    GroupBox1: TGroupBox;
    edU: TLabeledEdit;
    btnProizvol: TButton;
    GroupBox2: TGroupBox;
    tblOut: TStringGrid;
    lbZ0: TLabel;
    lbVfict: TLabel;
    lbTfict: TLabel;
    lbXv: TLabel;
    MainMenu1: TMainMenu;
    N1: TMenuItem;
    N2: TMenuItem;
    N3: TMenuItem;
    N4: TMenuItem;
    N5: TMenuItem;
    N6: TMenuItem;
    N7: TMenuItem;
    N8: TMenuItem;
    procedure FormCreate(Sender: TObject);
    procedure btnRaschetClick(Sender: TObject);
    procedure btnProizvolClick(Sender: TObject);
    procedure N2Click(Sender: TObject);
    procedure N4Click(Sender: TObject);
    procedure N5Click(Sender: TObject);
    procedure N6Click(Sender: TObject);
    procedure N7Click(Sender: TObject);
    procedure N8Click(Sender: TObject);
  private
    { Private declarations }
    procedure F3();
    procedure Err();
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

uses About;

{$R *.dfm}

procedure TForm1.Err();
begin
   ShowMessage('Сообщение некоректные данные');
      exit;
end;

procedure TForm1.F3();
var
i:integer;
Begin
 tblIn.ColCount:=StrToInt(edN.Text)+1;
 tblOut.ColCount:=StrToInt(edN.Text)+1;
for i:=1 to  tblIn.ColCount do
  Begin
        tblIn.Cells[i,0]:=IntToStr(i);
        tblOut.Cells[i,0]:=IntToStr(i);
  end;
end;


procedure TForm1.FormCreate(Sender: TObject);


begin
tblIn.Cells[0,1]:='a[i]';
tblIn.Cells[0,2]:='N[i]';
tblIn.Cells[0,3]:='Mark[i]';

tblOut.Cells[0,1]:='A[i]';
tblOut.Cells[0,2]:='Afict[i]';
tblOut.Cells[0,3]:='Pv[i]';
tblOut.Cells[0,4]:='P[i]';

  F3();
end;

procedure TForm1.btnRaschetClick(Sender: TObject);
var
 a1,N,P,Mark,Pv,Afict,Z,D,A:array[1..50] of real;
 u,x,k,i,j,V:integer;
 Vfict,Tfict,Xv,f,Sumf,Sum1,Sum2,Zsum,Asum,Z0,Teta,Tob:real;
begin
   F3();
Tob:=StrToFloat(edT.Text);
V:=StrToInt(edV.Text);
k:=tblIn.ColCount;
u:=StrToInt(edU.Text);
If u>k then
Begin
    ShowMessage('u должно быть меньше чем n');
    Exit;
end;
for i:=1 to k do
 //Заполнение данных в массив
begin
 //Исходные
If (tblIn.Cells[i,1]='') or (tblIn.Cells[i,2]='') or (tblIn.Cells[i,3]='') then
        Begin
         Err();
         exit;
        end;
a1[i]:=StrToFloat(tblIn.Cells[i,1]);
N[i]:=StrToFloat(tblIn.Cells[i,2]);
Mark[i]:=StrToFloat(tblIn.Cells[i,3]);
 // Расчитанные
A[i]:=a1[i]*N[i];
D[i]:=-sqr(A[i])/N[i];
Z[i]:=(D[i]+A[i])/A[i];
end;
 // Относительный порог резервирования
Teta:=Tob/V;
 // Расчет коэффициента дисперсии
Zsum:=0;
Asum:=0;
for i:=1 to k do
    Begin
     Zsum:=Z[i]*A[i]+Zsum;
     Asum:=Asum+A[i];
    end;
Z0:=Zsum/Asum;
Vfict:=round(V/Z0);   // фиктивный пучок каналов
Tfict:=round(Vfict*Teta/Z0); // фиктивный абс огр порог

  //
for i:=1 to k do
   Begin
    P[i]:=Tfict-Mark[i]+1; // Вероятность потерь по вызовам Pi
    Afict[i]:=A[i]/Z0;   // Фиктивная нагрузка
    for j:=0 to i-1 do
    Pv[i]:=Pv[i]+(V-j);   // Вектор вероятности потерь
   end;



   // Расчет вероятности Xv занятия каналов X  в пучке V
   x:=0;
   Sum1:=0;
   Sum2:=0;
   for i:=1 to u do
   begin

    Sum1:=Sum1+A[i]*0.1*(Tfict-x);
    Sum2:=Sum2+A[i]*0.1*(Tfict-k);

   end;
   // Расчет факториала и его суммы до V
   Sumf:=0; f:=1;
   for j:=1 to V do
   for i:=1 to j do
    Sumf:=Sumf+1/(f*j*i);

   Xv:=Sum1/(Sumf*Sum2); //Вероятность Xv занятия каналов X  в пучке V


   //---------Вывод данных
   for i:=1 to k do
        Begin
           tblOut.Cells[i,1]:=FloatToStr(A[i]);
           tblOut.Cells[i,2]:=FloatToStr(Afict[i]);
           tblOut.Cells[i,3]:=FloatToStr(Pv[i]);
           tblOut.Cells[i,4]:=FloatToStr(P[i]);
        end;
        lbZ0.Caption:='Результирующий коэффициент дисперсии Z0= '+FloatToStr(Z0);
        If (Vfict<0) then Vfict:=Vfict*(-1);
        lbVfict.Caption:='Фиктивный пучок каналов Vfict= '+ FloatToStr(Vfict);
        lbTfict.Caption:='Aиктивный абс. огр. порог Tfict= '+ FloatToStr(Tfict);
        lbXv.Caption:='Вероятность Xv занятия каналов в пучке V, Xv= '+FloatToStr(Xv);
end;

procedure TForm1.btnProizvolClick(Sender: TObject);
var i,j:integer;
begin
  F3();
for i:=1 to  tblIn.RowCount do
for j:=1 to  tblIn.ColCount do
Begin
 tblIn.Cells[j,i]:=IntToStr(random(10));
 If (tblIn.Cells[j,i]='0') then tblIn.Cells[j,i]:=IntToStr(10);
end;
btnRaschetClick(Sender);
end;

procedure TForm1.N2Click(Sender: TObject);
begin
Close;
end;

procedure TForm1.N4Click(Sender: TObject);
begin
btnRaschetClick(Sender);
end;

procedure TForm1.N5Click(Sender: TObject);
begin
btnProizvolClick(Sender);
end;

procedure TForm1.N6Click(Sender: TObject);
begin
AboutBox.ShowModal;
end;

procedure TForm1.N7Click(Sender: TObject);
begin
ShellExecute(Handle,nil,'file.doc',nil,nil,SW_RESTORE);


end;

procedure TForm1.N8Click(Sender: TObject);
begin
ShellExecute(Handle,nil,'listing.txt',nil,nil,SW_RESTORE);
end;

end.
Учебный материал
© nashaucheba.ru
При копировании укажите ссылку.
обратиться к администрации