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
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
 | 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