Mostramos una función matemática en ASP para calcular un número elevado a una potencia o exponente.
Si no me equivoco ASP no tiene una función en el propio sistema para realizar este cálculo matemático, bastante habitual. He buscado entre la documentación de funciones de ASP, pero como no encontré ninguna, me he decidido a escribirla y compartirla con otras personas.
La función matemática es el cálculo de un número elevado a una potencia, es decir, un número multiplicado por si mismo un número de veces. El número que se multiplica a si mismo se llama base y el número de veces que se multiplica es el exponente.
La operación es muy simple. Por ejemplo 10 base elevado al exponente o potencia 3 sería 10 x 10 x 10 = 1000. Con dos particularidades:
function calcula_base_exponente(base, exponente)
'response.write "Base: " & base
'response.write "<br>Exponente: " & exponente
if (exponente = 0) then
if (base = 0) then
'cero elevado a cero = indeterminación
calcula_base_exponente = null
else
'cualquier número elevado a 0 es 1
calcula_base_exponente = 1
end if
else
'para exponentes o potencias que no son el cero
dim resultado
resultado = 1
'desde 1 hasta el exponente
for i=1 to exponente
'tenemos que multiplicar por la base
resultado = resultado * base
next
calcula_base_exponente = resultado
end if
end function
La función está comentada y no es difícil de seguir. Pero un par de comentarios:
La función matemática es el cálculo de un número elevado a una potencia, es decir, un número multiplicado por si mismo un número de veces. El número que se multiplica a si mismo se llama base y el número de veces que se multiplica es el exponente.
La operación es muy simple. Por ejemplo 10 base elevado al exponente o potencia 3 sería 10 x 10 x 10 = 1000. Con dos particularidades:
- Cualquier número como base, menos el cero, elevado a cero es igual a 1.
- El cero elevado a cero es infinito, o indefinido o indeterminación, como le queramos llamar.
function calcula_base_exponente(base, exponente)
'response.write "Base: " & base
'response.write "<br>Exponente: " & exponente
if (exponente = 0) then
if (base = 0) then
'cero elevado a cero = indeterminación
calcula_base_exponente = null
else
'cualquier número elevado a 0 es 1
calcula_base_exponente = 1
end if
else
'para exponentes o potencias que no son el cero
dim resultado
resultado = 1
'desde 1 hasta el exponente
for i=1 to exponente
'tenemos que multiplicar por la base
resultado = resultado * base
next
calcula_base_exponente = resultado
end if
end function
La función está comentada y no es difícil de seguir. Pero un par de comentarios:
- Cuando elevo cero a el exponente cero, se genera una indeterminación. Yo lo que hago es devolver null, pero no se si es la mejor opción o si otro preferiría que la función devolviera otra cosa.
- Para cualquier exponente distinto de cero, realizo un bucle para multiplicar la base por si misma el número de veces que se indique en exponente.
Luis Javier Alvarez