自定义函数举例

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}

function CalFact(Num: integer): int64;              //计算阶乘
var
  i,Value: integer;                                 //定义循环变量
begin
  Value := 1;
  for i := 1 to Num do
    Value := Value * i;                             //循环计算得到数M的阶乘
  Result := Value;                                  //由隐含变量Result带回计算值
end;

function GetSum(V1,V2: integer): int64;             //调用计算阶乘
var
  SumV1,SumV2: int64;                               //定义临时变量
begin
  sumv1 := CalFact(V1);                                //调用计算阶乘的自定义过程
  sumv2 := CalFact(V2);
  getsum := SumV1 + SumV2;                          //由函数名返回阶乘之和
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);
  sum := getsum(ed1,ed2);
  label3.Caption := trim(edit1.Text) + '与' + trim(edit2.Text) + '的阶乘和为:' + inttostr(sum);
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
  close;
end;

end.

 

posted @ 2011-12-06 16:57  endsnow  阅读(183)  评论(0编辑  收藏  举报