ΠΠΈΡΡΠΈΠ½Π³ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π΄Π»Ρ ΡΠ°ΡΡΠ΅ΡΠ° Π±ΡΠΊΠΌΠ΅ΠΊΠ΅ΡΡΠΊΠΈΡ Β«Π²ΠΈΠ»ΠΎΠΊΒ»
ΠΠ½Π°ΡΠ΅Π½ΠΈΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ. Procedure FormActivate (Sender: TObject); CoefX := StrToFloat (EditCoefX.Text); Coef2 := StrToFloat (EditCoef2.Text); Coef1 := StrToFloat (EditCoef1.Text); Π’Π΅ΠΊΡΡ ΠΌΠΎΠ΄ΡΠ»Ρ ΡΠΎΡΠΌΡ. EditBetX. Text := FloatToStr (betX); EditBet2. Text := FloatToStr (bet2); EditBet2. Text := FloatToStr (bet2); EditBet1. Text := FloatToStr (bet1); EditBet1. Text := FloatToStr (bet1); Bank := StrToFloat… Π§ΠΈΡΠ°ΡΡ Π΅ΡΡ >
ΠΠΈΡΡΠΈΠ½Π³ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π΄Π»Ρ ΡΠ°ΡΡΠ΅ΡΠ° Π±ΡΠΊΠΌΠ΅ΠΊΠ΅ΡΡΠΊΠΈΡ Β«Π²ΠΈΠ»ΠΎΠΊΒ» (ΡΠ΅ΡΠ΅ΡΠ°Ρ, ΠΊΡΡΡΠΎΠ²Π°Ρ, Π΄ΠΈΠΏΠ»ΠΎΠΌ, ΠΊΠΎΠ½ΡΡΠΎΠ»ΡΠ½Π°Ρ)
Π’Π΅ΠΊΡΡ ΠΌΠΎΠ΄ΡΠ»Ρ ΡΠΎΡΠΌΡ.
unit UnitMain;
interface.
uses.
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,.
Dialogs, Menus, StdCtrls;
type.
TMainForm = class (TForm).
MainMenu: TMainMenu;
DoubleIssue: TMenuItem;
TrippleIssue: TMenuItem;
Label1: TLabel;
EditBank: TEdit;
Label2: TLabel;
Label3: TLabel;
LabelX: TLabel;
Label5: TLabel;
Label6: TLabel;
Label7: TLabel;
Label8: TLabel;
EditCoef1: TEdit;
EditCoefX: TEdit;
EditCoef2: TEdit;
EditBet1: TEdit;
EditBetX: TEdit;
EditBet2: TEdit;
EditProfit1: TEdit;
EditProfitX: TEdit;
EditProfit2: TEdit;
LabelCalc: TLabel;
Label4: TLabel;
LabelMargin: TLabel;
procedure TrippleIssueClick (Sender: TObject);
procedure DoubleIssueClick (Sender: TObject);
procedure FormActivate (Sender: TObject);
procedure LabelCalcClick (Sender: TObject);
private.
{ Private declarations }.
public.
{ Public declarations }.
end;
var.
MainForm: TMainForm;
implementation.
uses Math;
var.
IsDoubleForks: boolean; //ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π½Π° Π²ΡΠ±ΡΠ°Π½Π½ΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΈΡΡ ΠΎΠ΄ΠΎΠ² Π² ΡΠ°ΡΡΠ΅ΡΠ΅.
{$R *.dfm}.
procedure TMainForm. TrippleIssueClick (Sender: TObject);
begin.
IsDoubleForks := False;
//ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΠΌ Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡΡ ΠΏΠΎΠ»Π΅ΠΉ.
LabelX.Visible := True;
EditCoefX.Visible := True;
EditBetX.Visible := True;
EditProfitX.Visible := True;
//ΠΎΠ±Π½ΡΠ»ΡΠ΅ΠΌ ΠΏΠΎΠ»Ρ.
EditBet1.Text := '';
EditBet2.Text := '';
EditBetX.Text := '';
EditProfit1.Text := '';
EditProfit2.Text := '';
EditProfitX.Text := '';
LabelMargin.Caption := '0%';
end;
procedure TMainForm. DoubleIssueClick (Sender: TObject);
begin.
IsDoubleForks := True;
//ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΠΌ Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡΡ ΠΏΠΎΠ»Π΅ΠΉ.
LabelX.Visible := False;
EditCoefX.Visible := False;
EditBetX.Visible := False;
EditProfitX.Visible := False;
//ΠΎΠ±Π½ΡΠ»ΡΠ΅ΠΌ ΠΏΠΎΠ»Ρ.
EditBet1.Text := '';
EditBet2.Text := '';
EditBetX.Text := '';
EditProfit1.Text := '';
EditProfit2.Text := '';
EditProfitX.Text := '';
LabelMargin.Caption := '0%';
end;
procedure TMainForm. FormActivate (Sender: TObject);
begin.
DoubleIssueClick (nil);
//Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ.
EditBank.Text := '100';
EditCoef1.Text := '1,00';
EditCoef2.Text := '1,00';
EditCoefX.Text := '1,00';
end;
procedure TMainForm. LabelCalcClick (Sender: TObject);
var.
coef1: double;
coef2: double;
coefX: double;
bank: double;
bet1: double;
bet2: double;
betX: double;
betsum: double;
profit1: double;
begin.
//ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° Π²Π²ΠΎΠ΄Π° Π²Π°Π»ΠΈΠ΄Π½ΡΡ Π΄Π°Π½Π½ΡΡ Π² ΠΏΠΎΠ»Ρ Π±Π°Π½ΠΊΠ° ΠΈ ΠΊΠΎΡΡΡΠΈΡΠΈΠ΅Π½ΡΠΎΠ².
try.
bank := StrToFloat (EditBank.Text);
except.
MessageBox (Handle ,'Π ΠΏΠΎΠ»Π΅ «ΠΠ°Π½ΠΊ» Π²Π²Π΅Π΄Π΅Π½Ρ Π½Π΅Π²Π΅ΡΠ½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅!', 'ΠΡΠΈΠ±ΠΊΠ° Π²Π²ΠΎΠ΄Π° Π΄Π°Π½Π½ΡΡ ', MB_OK);
Exit;
end;
try.
begin.
coef1 := StrToFloat (EditCoef1.Text);
coef2 := StrToFloat (EditCoef2.Text);
if (not IsDoubleForks) then.
coefX := StrToFloat (EditCoefX.Text);
end;
except.
MessageBox (Handle ,'Π ΠΏΠΎΠ»Π΅ «ΠΠΎΡΡΡΠΈΡΠΈΠ΅Π½Ρ» Π²Π²Π΅Π΄Π΅Π½Ρ Π½Π΅Π²Π΅ΡΠ½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅!', 'ΠΡΠΈΠ±ΠΊΠ° Π²Π²ΠΎΠ΄Π° Π΄Π°Π½Π½ΡΡ ', MB_OK);
Exit;
end;
//ΡΠ°ΡΡΡΠ΅Ρ Π΄Π»Ρ Π΄Π²ΠΎΠΉΠ½ΠΎΠ³ΠΎ ΠΈΡΡ ΠΎΠ΄Π°.
if (IsDoubleForks) then.
begin.
bet1 := Round ((bank*coef2/(coef1+coef2))*100)/100;
EditBet1.Text := FloatToStr (bet1);
bet2 := Round ((bank*coef1/(coef1+coef2))*100)/100;
EditBet2.Text := FloatToStr (bet2);
betsum := bet1 + bet2;
profit1 := coef1*bet1 — betsum;
EditProfit1.Text := FloatToStr (Round ((profit1)*100)/100);
EditProfit2.Text := FloatToStr (Round ((coef2*bet2 — betsum)*100)/100);
LabelMargin.Caption := FloatToStr (Round ((100*profit1/bank)*100)/100) + '%';
end.
else //ΡΠ°ΡΡΡΠ΅Ρ Π΄Π»Ρ ΡΡΠΎΠΉΠ½ΠΎΠ³ΠΎ ΠΈΡΡ ΠΎΠ΄Π°.
begin.
bet1 := Round ((bank*coef2*coefX/(coef1*coef2+coef1*coefX+coef2*coefX))*100)/100;
EditBet1.Text := FloatToStr (bet1);
bet2 := Round ((bank*coef1*coefX/(coef1*coef2+coef1*coefX+coef2*coefX))*100)/100;
EditBet2.Text := FloatToStr (bet2);
betX := Round ((bank*coef1*coef2/(coef1*coef2+coef1*coefX+coef2*coefX))*100)/100;
EditBetX.Text := FloatToStr (betX);
betsum := bet1 + bet2 + betX;
profit1 := coef1*bet1 — betsum;
EditProfit1.Text := FloatToStr (Round ((profit1)*100)/100);
EditProfit2.Text := FloatToStr (Round ((coef2*bet2 — betsum)*100)/100);
EditProfitX.Text := FloatToStr (Round ((coefX*betX — betsum)*100)/100);
LabelMargin.Caption := FloatToStr (Round ((100*profit1/bank)*100)/100) + '%';
end;
end;
end.