Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Ayuda con un par de problemas en C++

Estas en el tema de Ayuda con un par de problemas en C++ en el foro de C/C++ en Foros del Web. Hola amigos, tenía un par de dudas en el mundo del C++, espero me puedo ayudar Estoy tratando de programar la siguiente operación matemática, (Xˆn) ...
  #1 (permalink)  
Antiguo 02/06/2009, 23:38
 
Fecha de Ingreso: junio-2009
Mensajes: 1
Antigüedad: 14 años, 11 meses
Puntos: 0
Ayuda con un par de problemas en C++

Hola amigos, tenía un par de dudas en el mundo del C++, espero me puedo ayudar
Estoy tratando de programar la siguiente operación matemática,
(Xˆn) * (-1)ˆ(n-1) / (2ˆn)!
n = 10
Hasta ahora llevo algo así como

int x, n, f;
long double Res, algo, fact;
n = 10;
x = StrToInt(txtNum->Text);

for(n=0; ;n++)
{
algo = pow(x, n) * pow((-1),(n + 1)) / (fact * pow(2, n));
fact = 1;
for(f=1; ;f++)
{
fact = fact * (3*n);
}
}
txtRes->Text = FloatToStr(algo);

A pesar de que corre el programa, sale un error al ingresar cualquier número, cuál podría ser la falla? He tratado de descubrirla, pero no logro encontrar el error

En otro plano, me podrían mostrar como generar en un memo, todos los números
Pares anteriores a cierto número natural?
Saludos y gracias de antemano
  #2 (permalink)  
Antiguo 08/06/2009, 08:37
 
Fecha de Ingreso: febrero-2004
Ubicación: Buenos Aires
Mensajes: 60
Antigüedad: 20 años, 2 meses
Puntos: 0
Respuesta: Ayuda con un par de problemas en C++

Yo veo vario errores, por un lado te falta definir el limite de los bucles

for(n=0; ;n++) debería ser for(n=0;n<10;n++) poe ejemplo.

Ademas tenes que darle un valor a fact antes de usarlo, sino estas dividiendo por cero.
Código c:
Ver original
  1. fact = 1;
  2. algo = pow(x, n) * pow((-1),(n + 1)) / (fact * pow(2, n));
  3. for(f=1;f<10;f++)
  4. {
  5.     fact = fact * (3*n);
  6. }

para calcular el factorial yo usaria una función definida de esta manera

Código c:
Ver original
  1. int factorial(int n){
  2.     int nout=1;
  3.     for(int i=1;i<n+1;i++){
  4.        nout=i*nout;    
  5.     }        
  6.     return(nout);
  7. }

Espero que te ayude
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 03:38.