Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: iAmChapin_ en 2 Septiembre 2015, 16:47 pm



Título: Ecuación con funciones C++
Publicado por: iAmChapin_ en 2 Septiembre 2015, 16:47 pm
Hola! Pues tengo una pequeña duda con mi código, porque no me da el resultado deseado  :xD esta casi perfecto, solo que en ves de 5.33333 me da 3.33333. El problema está así:

(http://i59.tinypic.com/8yw4xx.png)

Lo hice conforme está esa ecuación a papel y realizándolo por pasos, el resultado da 5.33333. Les presento mi código:

Código
  1. #include <iostream>
  2. #include <conio.h>
  3. #include <windows.h>
  4. #include <math.h>
  5. using namespace std;
  6.  
  7. //FUNCION SUMATORIA
  8. float sigma(float a, float b){
  9.  
  10. float division;
  11. float suma = 0;
  12. float operacion = 1;
  13. float i = 1;
  14.  
  15. //ELEVAMOS, SACAMOS FACTORIAL, DIVIDIMOS Y SUMAMOS PARA OBTENER EL RESULTADO
  16. while(i <= b){
  17.                a = pow (a,i);
  18.      for (int z = 1; i <= b; z++){
  19.                          operacion = operacion*z;
  20.                          division = a / operacion;
  21.                        suma = division+suma;
  22.                          i++;
  23.          }
  24.    }
  25.    return suma;
  26. }
  27.  
  28. int x;    //VARIABLES GLOBALES DE TIPO ENTERO
  29. int n;
  30.  
  31. int main(){
  32.  
  33. gotoxy(6,4); cprintf("Yo puedo resolver sigma");
  34. textcolor(15);
  35. gotoxy(24,6); cprintf("Ingresa X: ");
  36. cin >> x;
  37. textcolor(15);
  38. gotoxy(24,8); cprintf("Ingresa N: ");
  39. cin >> n;
  40. textcolor(15);
  41. gotoxy(24,10); cprintf("El resultado es: "); cout << sigma(x, n);
  42.  
  43. getch();
  44. return 0;
  45. }

En cada vuelta de la línea 16 a la línea 21 va aumentando todas las operaciones, x elevado a la i, factorial de i!, hecho esto divide y por último suma, tal y como lo describe el problema, pero el resultado debe ser 5.33333 y mi programa da 3.33333  :xD si pueden ver mi código y ver cual es el problema, les agradecería mucho si me brindaran la solución porfavor! Muchísimas gracias por leer!


Título: Re: Ecuación con funciones C++
Publicado por: someRandomCode en 2 Septiembre 2015, 17:48 pm
Código
  1. #include <iostream>
  2. #include <cmath>
  3. int factorial(int ingreso)
  4. {
  5. int regreso = 1;
  6. for (int i=0; i<ingreso;i++)
  7. {
  8. regreso *= (ingreso-i);
  9. }
  10. return regreso;
  11. }
  12. double sumatoria_simple(int desde, int hasta, int x)
  13. {
  14. double resultado;
  15. for (; desde<=hasta;desde++)
  16. {
  17. resultado = resultado + (std::pow(x,desde)/(float)factorial(desde));
  18. }
  19. return resultado;
  20. }
  21. int main()
  22. {
  23. std::cout << sumatoria_simple(1,5,6) << std::endl;
  24. }



Eso me da en papel segun la ecuacion que vos pasaste.. obviamente, lo probe con un solo ejemplo a las apuradas y acotado al caso tuyo, no es generico.. no se que valor le diste a x, i y n..

Probalo.. esta hecho asi nomas..


Título: Re: Ecuación con funciones C++
Publicado por: iAmChapin_ en 7 Septiembre 2015, 08:23 am
Muchas gracias mi amigo someRandomCode, lo modifique en algunas cositas hasta que me dio el resultado!!  ;-)


Título: Re: Ecuación con funciones C++
Publicado por: someRandomCode en 7 Septiembre 2015, 15:25 pm
No hay problema, si te soluciono, por favor marca el thread como resuelto! :)