unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Edit1: TEdit;
Edit2: TEdit;
Button1: TButton;
Button2: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure CalFact(Num: integer;Var Value: int64); //计算阶乘
var
i:integer; //定义循环变量
begin
Value := 1;
for i := 1 to Num do
Value := Value * i; //循环计算得到数M的阶乘
end;
procedure GetSum(V1,V2: integer;Var Sum: int64); //调用计算阶乘
var
SumV1,SumV2: int64; //定义临时变量
begin
CalFact(V1,SumV1); //调用计算阶乘的自定义过程
CalFact(V2,SumV2);
Sum := SumV1 + SumV2; //使用Sum得到阶乘之和
end;
procedure TForm1.Button1Click(Sender: TObject); //"计算"按钮单击事件
var
Sum: int64; //得到阶乘和的变量
Ed1,Ed2: integer; //接收Edit1和edit2中的数值的变量
begin
if (Edit1.Text = '') or (edit2.Text = '') then //判断是否输入值
begin
application.MessageBox('请输入整数','提示',MB_OK);
exit;
end;
ed1 := strtoint(edit1.Text);
ed2 := strtoint(edit2.Text);
getsum(ed1,ed2,sum);
label3.Caption := trim(edit1.Text) + '与' + trim(edit2.Text) + '的阶乘和为:' + inttostr(sum);
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
close;
end;
end.