function cal(integer n)
begin
  if n=0 then 
    return(1);
  else
    return(n-1);
end
end function
//好久没用pascal了,语法可能有错误。:-(
  

解决方案 »

  1.   

    input一个数求阶成。
    procedure TForm1.Button4Click(Sender: TObject);
    var
      NumberStr: string;
      value: Integer;
      function GetValue(qNum: Integer): Integer;
      begin
        if qNum > 1 then Result := qNum * GetValue(qNum - 1)
        else Result := 1;
      end;
    begin
      NumberStr := Inputbox('输入一个整数', '整数:', '');
      Value := GetValue(strToInt(NumberStr));
      showmessage(IntTostr(value))
    end;
      

  2.   

    呵呵,手误。:-(,应为:
    function cal(integer n)
    begin
      if n=0 then 
        return(1);
      else
        return n*(n-1);
    end
    end function
      

  3.   

    //Get N!-----Agree with MaFenShou
    function GetValue(qNum: Integer): Integer;
    begin
     if qNum > 1 then 
      Result := qNum * GetValue(qNum - 1)
     else
      Result := 1;
    end;
      

  4.   

    function go(n:integer):integer;
    begin
    if n=1 then go;=1
           else go:=go(n-1);
    go:=go+1;
    end;  
      

  5.   

    我忘了一些语法上的细节,可能还要定义一个变量,不能直接用go:=go+1。