Добавил:
Upload
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Информатика_1 / C / lecture7 / l7_1n
.c#include<stdio.h>
#include<math.h>
int rect(double,double,double,double (*)(double),double *);
double func(double);
void main(void){
double s,eps=0.001,a=0,b=1;
int error;
error=rect(a,b,eps,func,&s);
if(error==0)printf("integral=%e\n",s);
else printf("error in rect\n");
}
int rect(double x1,double x2,double e,double (*g)(double),double *s)
{int n=20,nmax=16384,i; double h,s0;
h=(x2-x1)/n;
for(i=1,*s=0;i<=n;i++)*s+=g(x1+(i-1)*h);
*s*=h;
do { s0=*s; n*=2; h/=2;
for(i=1,*s=0;i<=n;i++)*s+=g(x1+(i-1)*h);
*s*=h;
if(fabs(*s-s0)<e)return 0;
} while(n<nmax);
//аварийный выход
return 1;
}
double func(double t){ return t*t; }
Соседние файлы в папке lecture7