|
#1
|
|||
|
|||
изменить прогу
Мне надо изминить прогу вот ну чтоб как то отличалося:
Код:
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, 23.06.2010 в 20:30. |