Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: alfreddxd en 2 Septiembre 2016, 16:07 pm



Título: Calculo de Integral en C++
Publicado por: alfreddxd en 2 Septiembre 2016, 16:07 pm
Necesito hacer el calculo de una integral de forma recursiva en C++, ya lo hice de forma iterativa pero me gustaría hacerlo de forma recursiva ahora. ¿Alguien que me pueda ayudar?


int main(int argc, const char * argv[]) {
   
    float xd;
    float xh;
    int i;
    float sum = 0.0;
    int n;
   
   
        printf("Ingrese numero de Intervalos: ");
        scanf("%d",&n);
   
   
   
    for (i=0; i<n; i++) {
        xd= 1.0*i/n;
        xh= 1.0*(i+1)/n;
       

       
        sum=sum+((pow(3,sqrt(5*xd+7))/sqrt(xd+7))+(pow(3,sqrt(5*xh+7))/sqrt(xh+7)))/2;
    }
   
    printf("El valor de la suma es %.2f.\n",sum);
   
   
   
    return 0;
}

Esa es la iterativa.


Título: Re: Calculo de Integral en C++
Publicado por: AlbertoBSD en 2 Septiembre 2016, 16:16 pm
Tendrias que tener una funcion que reciva como parametro el  numero de invervalos y que cuando se llame a si misma valla decrementando el numero y termine cuando sea cero.

Para este tipo de problemas hacerlo de una forma recursiva es muy ineficiente, desde el punto de vista de la memoria y variables a usar.

Pero si lo haces por motivos didacticos esta bien.

La plantilla seria la siguiente:
Código
  1. float funcion(int intervalos, ... /*Otras variables*/){
  2.  
  3. //variables para la suma
  4. //
  5. if(intervalos > 1) {
  6. return funcion(intervalos-1, ... /*Otras variables*/);
  7. }
  8. else{
  9. return X;// Donde X tiene el total de la operacion;
  10. }
  11. }