elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Guía rápida para descarga de herramientas gratuitas de seguridad y desinfección


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Duda, sobre cómo poner una potencia.
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Duda, sobre cómo poner una potencia.  (Leído 5,119 veces)
-esifu-

Desconectado Desconectado

Mensajes: 3


Ver Perfil
Duda, sobre cómo poner una potencia.
« en: 24 Noviembre 2010, 19:25 pm »

Hola, tengo una duda en un programa que estoy haciendo.

Necesito elevar (-1.0)^i

pero no sé cómo ponerlo en lenguaje C para que no me de problemas.

La ecuación completa es:

j=j+[ ( (-1.0)^i) / (2i+1) ]

Gracias.


En línea

Akai


Desconectado Desconectado

Mensajes: 823



Ver Perfil
Re: Duda, sobre cómo poner una potencia.
« Respuesta #1 en: 24 Noviembre 2010, 19:35 pm »

Tienes que recurrir a la librería math.h o diseñarte tu mismo una función que realice potencias.


En línea

Shell Root
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.723


<3


Ver Perfil WWW
Re: Duda, sobre cómo poner una potencia.
« Respuesta #2 en: 24 Noviembre 2010, 19:48 pm »

Es verdad, lo que dice @Akai, tienes que recurrir a la libreria,
Código
  1. #include <math.h>

La función es,
Código
  1. double pow( double base, double exp );

Description:
The pow() function returns base raised to the exp power. There's a domain error if base is zero and exp is less than or equal to zero. There's also a domain error if base is negative and exp is not an integer. There's a range error if there's an overflow.

:http://www.elook.org/programming/c/pow.html
En línea

Por eso no duermo, por si tras mi ventana hay un cuervo. Cuelgo de hilos sueltos sabiendo que hay veneno en el aire.
Ivanchuk


Desconectado Desconectado

Mensajes: 469


LLVM


Ver Perfil WWW
Re: Duda, sobre cómo poner una potencia.
« Respuesta #3 en: 24 Noviembre 2010, 21:45 pm »

Si es siempre -1^i, te podes fijar si i es par o impar y devolver 1 o -1:
Código:
j=j+ ( (i & 1)? -1 : 1) / (2i+1) 
« Última modificación: 24 Noviembre 2010, 21:48 pm por Ivanchuk » En línea

Sólo quien practica lo absurdo puede lograr lo imposible.

Join us @ http://foro.h-sec.org
piou

Desconectado Desconectado

Mensajes: 25


Ver Perfil
Re: Duda, sobre cómo poner una potencia.
« Respuesta #4 en: 24 Noviembre 2010, 22:18 pm »

Puedes usar la librería math, pero no estoy seguro de que sea estándar, de todos modos una función que haga lo mismo es bastante fácil de hacer:

Código:
double potencia(int base, int exponente)
{
int i;
long double j = base;
for (i=1;i< exponente;i++)
{
j = j * base;
}
return j;
}
En línea

-esifu-

Desconectado Desconectado

Mensajes: 3


Ver Perfil
Re: Duda, sobre cómo poner una potencia.
« Respuesta #5 en: 25 Noviembre 2010, 00:26 am »

 :-\
« Última modificación: 25 Noviembre 2010, 21:30 pm por -esifu- » En línea

piou

Desconectado Desconectado

Mensajes: 25


Ver Perfil
Re: Duda, sobre cómo poner una potencia.
« Respuesta #6 en: 25 Noviembre 2010, 15:33 pm »

Veo que estás haciendo la fórmula de leibniz.
Como lo único que elevas a un número es el -1, puedes ver si es par o impar, si no, puedes usar la función que te he dejado en mi anterior post, o aplicarla de esta manera, que es peor pero más lineal y sencilla (imagen de la wikipedia):
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines