Fatorial Recursivo

Discussão em 'Progress 4GL' iniciado por Ronaldo, Abril 16, 2010.

  1. Ronaldo

    Ronaldo Sem Pontuação

    Galera

    Preciso fazer um faorial recursivo, alguem poderia me dizer como faço?

    Grato
    Ronaldo
  2. jalegria

    jalegria Membro Participativo

    Basicamente é assim:

    Código:
    FUNCTION Fatorial RETURNS INT(n AS INT):
    
      if n = 0 then return 1.
      return n * Fatorial(n - 1).
    
    END FUNCTION.                           
    
    MESSAGE Fatorial(7) view-as alert-box.
    
    Talvez vc tenha que melhorar para tratar nº negativos ou um possivel estouro da variavel pq o nº aumenta rapidamente e o progress não aguenta. Talvez seja interessante limitar o valor ou tratar o erro com no-error.

    Espero que ajude...
  3. Ronaldo

    Ronaldo Sem Pontuação

    Cara o que preciso é o seguinte:

    A pessoa digite um numero por exemplo 7, preciso fazer o fatorial de do numero 7, 6, 5, 4 e 3
    você poderia me falar como faço?
  4. jalegria

    jalegria Membro Participativo

    Então... É daquele jeito que te passei...
    Coloque a função no seu programa e passe a variavel como parametro...

    Código:
    FUNCTION Fatorial RETURNS INT(n AS INT):
    
      if n = 0 then return 1.
      return n * Fatorial(n - 1).
    
    END FUNCTION.
    
    DEF VAR i AS INT.
    UPDATE i.
    
    MESSAGE Fatorial(i) view-as alert-box.
    

Compartilhe esta Página