Função ASP para calcular um número elevado a uma potência

Mostramos uma função matemática em ASP para calcular um número elevado a uma potencia ou expoente.

Por Luis Javier Alvarez


Publicado em: 05/8/09
Valorize este artigo:
Se não me engano, ASP não tem uma função no próprio sistema para realizar este cálculo matemático, bastante habitual. Busquei entre a documentação de funções de ASP, porém como não encontrei nenhuma, decidi escrevê-la e compartilhar isso com outras pessoas.

A função matemática é o cálculo de um número elevado a uma potência, ou seja, um número multiplicado por si mesmo um número de vezes. O número que se multiplica a si mesmo se chama base e o número de vezes que se multiplica é o expoente.

A operação é muito simples. Por exemplo, 10 base elevado ao expoente ou potência 3 seria 10 x 10 x 10 = 1000. Com duas particularidades:
  • Qualquer número como base, menos o zero, elevado a zero é igual a 1.
  • O zero elevado a zero é infinito, ou indefinido ou indeterminação, como quisermos chamar.
Pois bem, esta é a função, tal como criei.

function calcula_base_expoente(base, expoente)
   'response.write "Base: " & base
   'response.write "<br>Expoente: " & expoente
   
   if (expoente = 0) then
      if (base = 0) then
         'zero elevado a zero = indeterminação
         calcula_base_expoente = null
      else
         'qualquer número elevado a 0 é 1
         calcula_base_expoente = 1
      end if
   else
      'para expoentes ou potências que não são o zero
      dim resultado
      resultado = 1
      'desde 1 até o expoente
      for i=1 to expoente
         'temos que multiplicar pela base
         resultado = resultado * base
      next
      calcula_base_expoente = resultado
   end if
end function


A função está comentada e não é difícil de seguir. Porém, um par de comentários:
  • Quando elevo zero ao expoente zero, se gera uma indeterminação. Eu o que faço é devolver null, porém não sei se é a melhor opção ou se alguém preferirá que a função devolva outra coisa.
  • Para qualquer expoente distinto de zero, realizo um loop para multiplicar a base por se mesma, o número de vezes que se indique em expoente.
Isto é todo. Espero que seja útil.





Comentários do artigo
Foram enviados 2 comentários ao artigo
1 comentário não revisado
1 comentário revisado:
VBScript possui um operador para isso
Por: meu
16/8/09
Na verdade a linguagem VBScript possui um operador para isso: "^"
Um exemplo é o seguinte:
a = 5 ^ 3 '125

Usuários :    login / registro

Manuais relacionados
Categorias relacionadas
O autor

Home | Sobre nós | Copyright | Anuncie | Entrar em contato