23.06.2010, 20:07
|
Прохожий
|
|
Регистрация: 22.06.2010
Сообщения: 8
Репутация: 10
|
|
изменить прогу
Мне надо изминить прогу вот ну чтоб как то отличалося:
Код:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, TeEngine, Series, ExtCtrls, TeeProcs, Chart;
type
TForm1 = class(TForm)
Edit1: TEdit;
Edit2: TEdit;
Edit3: TEdit;
Edit4: TEdit;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Button1: TButton;
Edit5: TEdit;
Label5: TLabel;
Edit6: TEdit;
Label6: TLabel;
Edit7: TEdit;
Edit8: TEdit;
Edit9: TEdit;
Edit10: TEdit;
Edit11: TEdit;
Edit12: TEdit;
Edit13: TEdit;
Edit14: TEdit;
Edit15: TEdit;
Edit16: TEdit;
Edit17: TEdit;
Label7: TLabel;
Label8: TLabel;
Label9: TLabel;
Label22: TLabel;
Label21: TLabel;
Label23: TLabel;
Label24: TLabel;
Label25: TLabel;
Label26: TLabel;
Label28: TLabel;
Label20: TLabel;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
Function fact(n:integer):Longint;
Begin
Result:=1;
While (n>1) do
Begin
Result:=Result*n;
n:=n-1;
end;
End;
procedure TForm1.Button1Click(Sender: TObject);
var l,m,mu,Ro,Pl,Ps,p0,pv,Pr,a,b:Single; k,n:integer;
begin
n:=StrToInt(Edit3.Text);
l:=StrToFloat(Edit2.Text);
mu:= StrToFloat(Edit1.Text);
m:= StrToFloat(Edit5.Text);
Ro:=l/mu;
Edit4.Text:=FloatToStr(Ro);
if (Ro>=n) then
begin
ShowMessage('Условие не удовлетворяет, при нажатие ОК n увеличится на 1');
Edit3.Text:=FloatToStr(n+1);
end
else ShowMessage('Достаточное количество каналов!');
Ps:=Ro/n;
Edit7.Text:=FloatToStr(Ps);
If Ps<>1 then
For k:=0 to n do
begin
pv:=pv+(exp(k*ln(n))/fact(k))*exp(k*ln(Ps));
pl:=pv+(exp(n*ln(n))/fact(n))*((exp((n+1)*ln(Ps))*(1-exp(m*ln(Ps)))/(1-Ps)));
P0:=1/pl;
Edit8.Text:=FloatToStr(P0) end
Else
begin
For k:=0 to n do
begin
pv:=pv+exp(k*ln(n))/fact(k);
end;
pl:=Pv+(exp(n*ln(n))/fact(n))*m;
P0:=1/pl;
Edit8.Text:=FloatToStr(P0);
end;
a:=exp(n*ln(n))/fact(n);
b:=exp((n+m)*ln(Ps));
Edit9.Text:=FloatToStr(a*b*P0);
// Form1.Chart1.Series[0].AddXY(n,Pr,'',clBlue);
Edit10.Text:=FloatToStr(1-StrToFloat(Edit9.Text));
Edit11.Text:=FloatToStr(StrToFloat(Edit2.Text)*StrToFloat(Edit10.Text));
Edit12.Text:=FloatToStr(StrToFloat(Edit11.Text)/StrToFloat(Edit1.Text));
If Ps <>1 then
Edit13.Text:=FloatToStr((a*exp((n+1)*ln(Ps))*(1-exp(n*ln(Ps))*(m+1-m*Ps))/(exp(2*ln(1-Ps))) ) )
Else Begin
Edit13.Text:=FloatToStr(a*((m*(m+1))/2)*P0 );
end;
Edit14.Text:=FloatToStr(StrToFloat(Edit12.Text)+StrToFloat(Edit13.Text));
Edit6.Text:=FloatToStr(StrToFloat(Edit12.Text)/StrToFloat(Edit2.Text));
Edit16.Text:=FloatToStr(StrToFloat(Edit13.Text)/StrToFloat(Edit2.Text));
Edit15.Text:=FloatToStr(StrToFloat(Edit6.Text)+StrToFloat(Edit16.Text));
Edit17.Text:=FloatToStr(StrToFloat(Edit12.Text)/n);
//Form1.Chart1.Series[0].Add(n,'каналы',clBlue);
end;
end.
Admin: Пользуемся тегами!
|