📄 unit1.~pas
字号:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ComCtrls;
type
TForm1 = class(TForm)
PageControl1: TPageControl;
TabSheet1: TTabSheet;
TabSheet2: TTabSheet;
StatusBar1: TStatusBar;
GroupBox1: TGroupBox;
GroupBox2: TGroupBox;
Label10: TLabel;
Edit7: TEdit;
Label11: TLabel;
Edit8: TEdit;
Label12: TLabel;
Edit9: TEdit;
Label13: TLabel;
Edit10: TEdit;
Label14: TLabel;
Edit11: TEdit;
Label15: TLabel;
Edit12: TEdit;
Label16: TLabel;
Edit13: TEdit;
Label17: TLabel;
Label18: TLabel;
Label19: TLabel;
Edit14: TEdit;
Edit15: TEdit;
Edit16: TEdit;
Button1: TButton;
Button2: TButton;
DoButton: TButton;
ClearButton: TButton;
GroupBox3: TGroupBox;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label5: TLabel;
Label4: TLabel;
Label6: TLabel;
Label7: TLabel;
Label9: TLabel;
Edit6: TEdit;
Edit5: TEdit;
Expect: TComboBox;
Edit4: TEdit;
Edit3: TEdit;
Time: TComboBox;
Edit2: TEdit;
Edit1: TEdit;
Label20: TLabel;
procedure DoButtonClick(Sender: TObject);
procedure ClearButtonClick(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.DoButtonClick(Sender: TObject);
var
Value_now: single;
Average_Market_Ratio: single;
HoldTime: Integer;
Earn_PerStock_now: single;
Average_RaiseRatio_PerYear: single;
Earn_Expect_Ratio: single;
Acceptable_Value: single;
j, k, l, a, b, m: single;
i: Integer;
begin
Value_now:= 0;
Average_Market_Ratio:= 0;
HoldTime:= 0;
Earn_PerStock_now:= 0;
Average_RaiseRatio_PerYear:= 0;
Earn_Expect_Ratio:= 0;
Acceptable_Value:= 0;
if Time.Text <> '' then
HoldTime := StrToInt(Time.Text)
else
Exit;
if Edit1.Text <> '' then
Value_now := StrToFloat(Edit1.Text)
else
Exit;
if Edit2.Text <> '' then
Average_Market_Ratio := StrToFloat(Edit2.Text)
else
Exit;
if Edit3.Text <> '' then
Earn_PerStock_now := StrToFloat(Edit3.Text)
else
Exit;
if Edit4.Text <> '' then
Average_RaiseRatio_PerYear := StrToFloat(Edit4.Text)
else
Exit;
if Expect.Text <> '' then
Earn_Expect_Ratio := StrToFloat(Expect.Text)
else
Exit;
j:= 1;
k:= 1;
l:= 1;
a:= 1;
b:= 1;
for i:= 1 to HoldTime do
begin
j:= j*(1+Average_RaiseRatio_PerYear);
k:= k*(1+Earn_Expect_Ratio);
end;
j:= j*Earn_PerStock_now;
j:= j*Average_Market_Ratio;
Acceptable_Value:= j/k;
Edit5.Text:= FloatToStr(Acceptable_Value);
a:= ln(j);
b:= ln(Value_now);
l:= (a-b)/HoldTime;
m:= exp(l)- 1;
Edit6.Text:= FloatToStr(Int(m*100))+ '%';
end;
procedure TForm1.ClearButtonClick(Sender: TObject);
begin
Edit1.Text:= '';
Edit2.Text:= '';
Edit3.Text:= '';
Edit4.Text:= '';
Edit5.Text:= '';
Time.Text:= '';
Expect.Text:= '';
end;
procedure TForm1.Button1Click(Sender: TObject);
var
HoldTime: Integer;
GDP_now: Integer;
GDP_future: single;
GDP_ratio: single;
EARN_now: Integer;
EARN_future: single;
EARN_ratio: single;
RATIO_now: single;
RATIO_future: single;
RATIO_Increase_ratio: single;
j, k: single;
i: Integer;
a, b, c, d, e: Integer;
begin
HoldTime:= 0;
GDP_now:= 0;
GDP_future:= 0;
GDP_ratio:= 0;
EARN_now:= 0;
EARN_future:= 0;
EARN_ratio:= 0;
RATIO_now:= 0;
RATIO_future:= 0;
RATIO_Increase_ratio:= 0;
if Edit7.Text <> '' then
HoldTime:= StrToInt(Edit7.Text)
else
Exit;
if Edit8.Text <> '' then
GDP_now:= StrToInt(Edit8.Text)
else
Exit;
if Edit9.Text <> '' then
GDP_ratio:= StrToFloat(Edit9.Text)
else
Exit;
if Edit11.Text <> '' then
EARN_now:= StrToInt(Edit11.Text)
else
Exit;
if Edit12.Text <> '' then
EARN_ratio:= StrToFloat(Edit12.Text)
else
Exit;
j:= 1;
k:= 1;
for i:= 1 to HoldTime do
begin
j:= j*(1+GDP_ratio);
k:= k*(1+EARN_ratio);
end;
GDP_future:= GDP_now*j;
EARN_future:= EARN_now*k;
RATIO_now:= (EARN_now/GDP_now)*1000;
RATIO_future:= (EARN_future/GDP_future)*1000;
RATIO_Increase_ratio:= ((RATIO_future-RATIO_now)/RATIO_now)*100;
a:= 0;
b:= 0;
c:= 0;
d:= 0;
e:= 0;
a:= Round(GDP_future);
b:= Round(EARN_future);
c:= Round(RATIO_now);
d:= Round(RATIO_future);
e:= Round(RATIO_Increase_ratio);
Edit10.Text:= IntToStr(a);
Edit13.Text:= IntToStr(b);
Edit14.Text:= IntToStr(c) + ' %。';
Edit15.Text:= IntToStr(d) + ' %。';
Edit16.Text:= IntToStr(e) + ' %';
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
Edit7.Text:= '';
Edit8.Text:= '';
Edit9.Text:= '';
Edit10.Text:= '';
Edit11.Text:= '';
Edit12.Text:= '';
Edit13.Text:= '';
Edit14.Text:= '';
Edit15.Text:= '';
Edit16.Text:= '';
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -