//2L 17番 金田 創一朗
//積分の方式:矩形、台形の両者
#include <stdio.h>
#include <math.h>
//円の式
double function(double x)
{
}
//台形で求める場合
double daike(double a,double b,int delt,double(*f)())
{
double s,deltax;
deltax=(b-a)/delt;
//台形の公式
s=((*f)(a)+(*f)(b))/2.0;
int i;
for(i=1; i<delt; i++){
s+=(*f)(a+i*deltax);
}
s*=deltax;
return s;
}
//矩形で求める場合
double tanke(double A,double B,int Delt,double(*F)())
{
double S,DeltaX;
DeltaX=(B-A)/Delt;
S=0;
int I;
for(I=0; I<Delt; I++){
S+=(*F)(A+I*DeltaX);
}
S*=DeltaX;
return S;
}
int main(void)
{
int delta;
printf("結果:%1.10f\n",tanke
(0,1.0,delta
,function)*4);
printf("結果:%1.10f\n",daike
(0,1.0,delta
,function)*4);
return 0;
}
Ly8yTCAxN+eVquOAgOmHkeeUsOOAgOWJteS4gOaclwovL+epjeWIhuOBruaWueW8jzrnn6nlvaLjgIHlj7DlvaLjga7kuKHogIUKI2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxtYXRoLmg+CgovL+WGhuOBruW8jwpkb3VibGUgZnVuY3Rpb24oZG91YmxlIHgpCnsKCXJldHVybihzcXJ0KDEteCp4KSk7Cn0KLy/lj7DlvaLjgafmsYLjgoHjgovloLTlkIgKZG91YmxlIGRhaWtlKGRvdWJsZSBhLGRvdWJsZSBiLGludCBkZWx0LGRvdWJsZSgqZikoKSkKewoJZG91YmxlIHMsZGVsdGF4OwoJCgkKCWRlbHRheD0oYi1hKS9kZWx0OwoJCgkvL+WPsOW9ouOBruWFrOW8jwoJcz0oKCpmKShhKSsoKmYpKGIpKS8yLjA7CglpbnQgaTsKCWZvcihpPTE7IGk8ZGVsdDsgaSsrKXsKCQlzKz0oKmYpKGEraSpkZWx0YXgpOwoJfSAKCXMqPWRlbHRheDsKCQoJcmV0dXJuIHM7Cn0KLy/nn6nlvaLjgafmsYLjgoHjgovloLTlkIgKZG91YmxlIHRhbmtlKGRvdWJsZSBBLGRvdWJsZSBCLGludCBEZWx0LGRvdWJsZSgqRikoKSkKewoJZG91YmxlIFMsRGVsdGFYOwoKCURlbHRhWD0oQi1BKS9EZWx0OwoJCglTPTA7CglpbnQgSTsKCWZvcihJPTA7IEk8RGVsdDsgSSsrKXsKCQlTKz0oKkYpKEErSSpEZWx0YVgpOwoJfQoJUyo9RGVsdGFYOwoJCglyZXR1cm4gUzsKfQoKaW50IG1haW4odm9pZCkKewoJaW50IGRlbHRhOwoJcHJpbnRmKCLliIblibLmlbDjga7lhaXlipsiKTsKCXNjYW5mKCIlZCIsJmRlbHRhKTsKCQoJcHJpbnRmKCJcbuWIhuWJsuaVsDolZFxuIixkZWx0YSk7CgkKCXByaW50ZigiKuefqeW9oipcbiIpOwoJcHJpbnRmKCLntZDmnpw6JTEuMTBmXG4iLHRhbmtlKDAsMS4wLGRlbHRhLGZ1bmN0aW9uKSo0KTsKCQoJcHJpbnRmKCIq5Y+w5b2iKlxuIik7CglwcmludGYoIue1kOaenDolMS4xMGZcbiIsZGFpa2UoMCwxLjAsZGVsdGEsZnVuY3Rpb24pKjQpOwoKCXJldHVybiAwOwp9Cg==