He detectado estos errores en la escritura de tu codigo:
1.Cero que el primer error, y gravisisimo es que no declaras algunas variables para usarlas, como es el caso de :
-
cin >> n;
no declaraste que ivas a usar la variable entera
n en la funcion main
-
int factorial (x) //definicion de la funcion
{
tienes que declararlo asi:
int factorial (
int x) //definicion de la funcion
{
-Luego utilizas :
{
factorial=1;
for (int counter=x; counter>=1; counter--)
nuevamente no has declarado la variable factorial(diferente de la funcion factorial)
ni tampoco la variable counter, segun el tipo de dato que necesites.
-Al final no declaras las variables serie, contador, y factorial.
-al final en:
serie=1+1/factorial;
no le pasaste el parametro a factorial , asi que te quedaria:
serie=1+1/factorial(n);
Creo que no tinese algo claro, y es que aunque en las funciones utlices variables del mismo nombre que en otras funciones o del mismo nombre que en el main, es necesario que las declares nuevamente ya que cada funcion posee un espacio de memoria independiente* y el compilador necesita saber para que tipo de dato debe reservar memoria... por eso mientras uno aprende, es recomendable no utilizar los mismos nombres de variables entre funciones.
*(esto es cierto con exepcion de los hilos , pero eso ya es un cuento que por ahora sera mejor que no lo toques)
Ahora bien tu programa con estos errores corregidos quedaria como esta a continuacion, aunque corregir esos errores de gramática no garantiza que tu programa haga lo que tu quieres:
//calculo del numero "e" mediante el desarrollo en serie
#include <iostream.h>
double serie ([b]int[/b]); //prototipo de funcion
int factorial (int); //prototipo de funcion
[b]int[/b] main()
{
[b]int n=0;[/b]
cout << "teclee un numero entero positivo para calcular la serie: "<<endl;
cin >> n;
cout << "el valor de la serie es de" << serie [b](n)[/b] << endl;
return 0;
}
int factorial ([b]int[/b] x) //definicion de la funcion
{
[b]int factorial=1;
int counter; [/b]
for (int counter=x; counter>=1; counter--)
factorial*=counter;
return factorial;
}
double serie (int n) //definicion de la funcion
{
[b]double serie;
int contador;[/b]
serie=1+1/factorial[b](n)[/b];
for(contador=0; contador<=n; contador++)
serie+ =contador;
return serie;
}
Me he tomado el atrevimiento de reescribir tu programa para que haga lo que necesitas, si quieres que te de una explicacion màs detallada de como funciona , o de que hece cada cosa, con gusto lo hare, solo escribeme al foro.
chao suerte.
//calculo del numero "e" mediante el desarrollo en serie
#include <stdio.h>
double serie (int); //prototipo de funcion
double factorial (double); //prototipo de funcion
int main()
{
int n=0;
printf("nteclee un numero entero positivo para calcular la serie: ");
scanf("%d",&n);
printf("nel valor de la serie es de: %2.30G",serie(n));
getch();
return 0;
}
double factorial (double x) //definicion de la funcion
{
double fact=1;
int count;
for (count=x; count>1; count--)
fact*=count;
return fact;
}
double serie (int n) //definicion de la funcion
{
double ser,e=1;
int cont;
for(cont=1; cont<=n; cont++)
{
ser=1/factorial(cont);
e+=ser;
}
return e;
}