这是求输入一个数得到它的阶乘的程序,但结果却显示不出来,还有为什么mynumber:=1后面不带分号。
public
{ Public declarations }
function checknumber():integer;
function mynumber(i:integer):int64; end;var
Form1: TForm1;implementation{$R *.dfm}
function tform1.checknumber():integer;
var num:integer;
begin
num:=strtoint(edit1.Text);
if (num>25) and (num<0) then
begin
label2.Caption:='数据输入错误,请重新输入';
label3.Caption:='';
checknumber:=-1;
end
else
begin
checknumber:=num;
label2.Caption:='你输入的阶乘是:';
end;
end;
function tform1.mynumber(i:integer):int64;
var
j:integer;
total:int64;
begin
if (i=0) or (i=1) then
mynumber:=1
else
begin
total:=1;
for j:=1 to i do
total:=total*j;
mynumber:=total;
end;
end;procedure TForm1.Button2Click(Sender: TObject);
var num:integer;
begin
num:=checknumber();
if num>=0 then
label3.Caption:=inttostr(mynumber(num));end;end.
public
{ Public declarations }
function checknumber():integer;
function mynumber(i:integer):int64; end;var
Form1: TForm1;implementation{$R *.dfm}
function tform1.checknumber():integer;
var num:integer;
begin
num:=strtoint(edit1.Text);
if (num>25) and (num<0) then
begin
label2.Caption:='数据输入错误,请重新输入';
label3.Caption:='';
checknumber:=-1;
end
else
begin
checknumber:=num;
label2.Caption:='你输入的阶乘是:';
end;
end;
function tform1.mynumber(i:integer):int64;
var
j:integer;
total:int64;
begin
if (i=0) or (i=1) then
mynumber:=1
else
begin
total:=1;
for j:=1 to i do
total:=total*j;
mynumber:=total;
end;
end;procedure TForm1.Button2Click(Sender: TObject);
var num:integer;
begin
num:=checknumber();
if num>=0 then
label3.Caption:=inttostr(mynumber(num));end;end.
另外else前那一个分号可以没有
修正一下,ELSE前一行不能有分号