Funções Matemáticas Simples

      
      
      { Funcoes matematicas simples e uteis}
      
      { Joao Paulo Schwarz Schuler }
      
      { http://www.schulers.com/jpss }
      
      {$X+}
      
      function Log(NUM,BASE:extended):extended;
      
      { retorna logaritmo de NUM na base BASE }
      
      begin
      
      Log:=ln(NUM)/ln(BASE);
      
      end;
      
      
      
      function Expon(BASE,RESULTADO:extended):extended;
      
      {* EXPON = numero que torna verdadeira
      
               a equacao: base ^ expon = resultado    *}
      
      begin
      
      Expon:=Log(RESULTADO,BASE);
      
      end;
      
      
      
      
      
      
      
      function Pot(NUMERO,ELEVADO:extended):extended;
      
      {*  Eleva o numero a sua potencia.
      
           exemplo : 3^4= pot(3,4) *}
      
      begin
      
      Pot:=exp(ELEVADO*ln(NUMERO));
      
      end;
      
      
      
      function Fat(N:extended):extended;
      
      {*   calcula o fatorial de n *}
      
      begin
      
      if round(N)=0
      
         then Fat:=1
      
         else Fat:=round(N)*Fat(round(N-1));
      
      end;
      
      
      
      function Arranjo(N,P:extended):extended;
      
      {calcula arranjo}
      
      var I:longint;
      
          C:extended;
      
      begin
      
      C:=1;
      
      for I:=1 to round(P) do
      
          begin
      
          C:=C*round(N);
      
          N:=N-1;
      
          end;
      
      Arranjo:=C;
      
      end;
      
      
      
      function Combinacao(N,P:extended):extended;
      
      {calcula combinacao}
      
      begin
      
      Combinacao:=Arranjo(N,P)/Fat(P);
      
      end;
      
      
      
      function PA(A1,N,R:extended):extended;
      
      {* Calcula elemento da PA
      
         n=numero do elemento a se descobrir
      
         r=raio
      
         a1=primeiro elemento  *}
      
      begin
      
      PA:=A1+(N-1)*R;
      
      end;
      
      
      
      function PG(A1,N,Q:extended):extended;
      
      {* Calcula elemento da PG
      
         n=numero do elemento a se descobrir
      
         a1=primeiro elemento  *}
      
      begin
      
      PG:=A1*Pot(Q,N-1);
      
      end;