Ayuda con un par de problemas en C++

Rockchops
03 de Junio del 2009
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