已知函数如下:
function f(n:integer):integer;
    begin
        if n=0 then f:=0
        else if n>0 then f:=f(n-2)
            else f:=f(n+3)
   end;
则调用f(5)的值是( )
A、 0
B、 1
C、 -1
D、 -2
E、 2还不知道怎么在Delphi中运行该代码,那为朋友能够教教吗?

解决方案 »

  1.   

    这样做,在form上加一个edit1用于输入n,加一个edit2显示执行结果,再加个button用于执行这个函数,代码如下:unit Unit1;interfaceuses
      Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
      StdCtrls;type
      TForm1 = class(TForm)
        Edit1: TEdit;
        Button1: TButton;
        Edit2: TEdit;
        procedure Button1Click(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
        function f(n:integer):integer; ////////////声明该函数
      end;var
      Form1: TForm1;implementation{$R *.DFM}procedure TForm1.Button1Click(Sender: TObject);///////button1调用f(n)的代码
    var
    vn:integer;////定义一个变量以便传递edit1的值给f(n)
    begin
        vn:=strtoint(Trim(edit1.text));
        edit2.text:=inttostr(f(vn)); ////调用f(n)并把结果显示在edit2上
    end;function TForm1.f(n:integer):integer;////////函数f(n)本身也要写进来
        begin
            if n=0 then f:=0
            else if n>0 then f:=f(n-2)
                else f:=f(n+3)
       end;
    end.
      

  2.   

    测试的结果为:
    在edit1中输入5,执行后,在edit2中显示结果为0
    输入很多数字,得到的结果都是0
      

  3.   

    不是只有n=0时,函数才有值(f=0),其他都是在调用这个函数,使n=0 得到f=0这个结果。
    所以你测出来的结果都是0。