//--------------------------------------------------------------------------- #include #include #include #pragma hdrstop #include #include "Un_temp.h" //--------------------------------------------------------------------------- #pragma package(smart_init) #pragma link "PERFGRAP" #pragma resource "*.dfm" TForm1 *Form1; //--------------------------------------------------------------------------- __fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) { } //--------------------------------------------------------------------------- static int shina[4]; int tempRazm; //число пополнений int p[100]; //массив пополнений шин int stroka=0; //--------------------------------------------------------------------------- float __fastcall TForm1::Ver(int t) { //t - в тройках недель /*Расчёт вероятностей*/ switch(t) { case 0 : return 1; break; case 1 : return 0.95;break; case 2 : return 0.85;break; case 3 : return 0.6;break; case 4 : return 0.3;break; default : return 0; } } //-------------------------------------------------------------------------- int __fastcall TForm1::F(int t) { int f = NULL; int nSkin = 10; /*Если число машин не изменяется то число шин расчитывается так:*/ if(RadioButton1->Checked) { int nCar = 40; //число машин f = nCar*nSkin; //число шин }; /*Если число машин изменяется то число шин расчитывается так:*/ if(RadioButton2->Checked) { if(t>StrToInt(Memo6->Lines->Strings[stroka])) stroka++; if(stroka!=0) { if(t<=StrToInt(Memo6->Lines->Strings[stroka-1])) stroka--; } f = nSkin*StrToInt(Memo5->Lines->Strings[stroka]); } return f; } //-------------------------------------------------------------------------- void __fastcall TForm1::popolnClick(TObject *Sender) { Memo3->Clear(); if(RadioButton1->Checked) { tempRazm = ceil(StrToInt(time->Text)/3); } if(RadioButton2->Checked) { tempRazm = StrToInt(Memo6->Lines->Strings[(Memo6->Lines->Count)-1]); } Memo3->Clear(); for(int w=1;w<=tempRazm;w++) { Form1->Memo3->Lines->Add(Popolnenie(w)); }; } /*Расчёт пополнеия шин*/ int __fastcall TForm1::Popolnenie(int t) { int temp = NULL; /*Если число машин увеличивается*/ if(t!=1 && F(t)>F(t-1)) p[t-1]+=(F(t)-F(t-1)); /*Если число машин уменьшается*/ if(t!=1 && F(t)Label4->Caption = tempRazm; return p[t]; } //--------------------------------------------------------------------------- /*Вычисление популяции шин во время эксплуатации*/ int __fastcall TForm1::Population(int t) { float N=NULL; if(t<5) for(int j=0;j<5;j++) { N += (shina[j]*Ver(j+t)/Ver(j)); } else N=0; N=floor(N); return N; } //--------------------------------------------------------------------------- void __fastcall TForm1::FormCreate(TObject *Sender) { shina [0] = StrToInt(Form1->shina1->Text); shina [1] = StrToInt(Form1->shina2->Text); shina [2] = StrToInt(Form1->shina3->Text); shina [3] = StrToInt(Form1->shina4->Text); shina [4] = StrToInt(Form1->shina5->Text); setmem(p,tempRazm*sizeof(int),0); } //--------------------------------------------------------------------------- void __fastcall TForm1::RadioButton1Click(TObject *Sender) { Label2->Enabled = true; Label3->Enabled = true; time->Enabled = true; Memo6->Clear(); Memo5->Clear(); Form1->Memo6->Enabled = false; Form1->Memo5->Enabled = false; } //--------------------------------------------------------------------------- void __fastcall TForm1::RadioButton2Click(TObject *Sender) { Form1->Memo6->Enabled = true; Form1->Memo5->Enabled = true; Form1->Label1->Enabled = true; Form1->Label7->Enabled = true; Label2->Enabled = false; Label9->Enabled = false; time->Enabled = false; } //--------------------------------------------------------------------------- void __fastcall TForm1::Button2Click(TObject *Sender) { Form1->Close(); } //---------------------------------------------------------------------------