Red de conocimiento informático - Material del sitio web - El algoritmo de Simpson que complica la programación en C

El algoritmo de Simpson que complica la programación en C

#include "math.h"

#include "iostream"

#include "stdio.h"

usando el espacio de nombres std; >#define f(x) sin(x)

#define a 1

#define b 5

long double fs(unsigned long n){

long i;

long double h=((long double)(b-a))/((long double)n

long double *x;

unsigned long m=n/2;

if(!(x=(long double*)malloc((n 1)*sizeof(long double)))) exit( OVERFLOW);

for(unsigned long i=0; ilt; =n; i ) x[i]=a i*h

long double sum=0.0; >

suma=h/3.0*(f((doble largo)a) f((doble largo)b));

for( i=0; ilt; m; i )suma = h/3.0*4.0*f(x[2*i 1]);

para ( i=1; ilt; m; i )sum =h/3.0*2.0*f(x[2* i]);

suma de retorno

}

void main(){

int n, i;

for(k=0;klt;13;k){

coutlt;lt; "Número de intervalos divididos n="lt;lt;nlt;lt;endl; p>long double ans;

ans=fs(n);

printf("La respuesta es: 13.16f\n",

}

}

No tengo TC, lo hice en VS2005 y la depuración fue exitosa

#include "math. h"

# incluye "iostream"

#incluye "stdio.h"

usando el espacio de nombres std;

# define f( x) sqrt(4-sin(x)*sin(x))

long double fs( unsigned long n, int a, int b){

long i ;

p>

long double h=((long double)(b-a))/((long double)n)/2

long double *x;

sin firmar largo m=n;

if(! (x=(doble largo*)malloc((n 1

)*sizeof(long double)))) exit(OVERFLOW)) 33x=(long double*)malloc((n 1)*sizeof(long double)))) exit(OVERFLOW)); >

for(unsigned long i=0;ilt;=n;i) x[i]=a i*h;

long double suma=0.0;

suma= h/3.0*(f((doble largo)a) f((doble largo)b));

for( i=0; ilt; m; i )sum =h/3.0*4.0* f(x[2*i 1]);

for (i=1;ilt;m;i)sum =h/3.0*2.0*f(x[2*i]); p>

Devuelve suma

}

void main(){

int a, b

unsigned; long n ;

cout lt;lt; "Ingrese a:"; cingt;gt;a;

cout lt;lt; "Ingrese b:";cingt;gt;b ;

coutlt;lt; "entrada n:"; cingt;gt;n;

ans doble largo;

ans=fs(n, a, b) ;

printf("La respuesta es: 13.16f\n",ans);

}