プログラムで, daikei と言う関数が台形公式を与え,
引数は順に, 積分区間の右端, 左端, 分割の個数です.
プログラムで注意して欲しいのは, fun
引数の計算 a + k*interval
の部分です. ここでは
a, interval は double 型, k は int 型です.
このような異なる型の変数の間の計算は, 変数の型変換が自動的に
行われます. 今の場合 k を double 型に変換して計算が実行されます.
型変換の規則は, char int
double で与えられます.
すなわち, 計算時にはこれらの内, より右側の型に値の型を合わせて
計算されます.
/* File name 9-1.c */ #include <stdio.h> double daikei(double a, double b, int n); double fun(double x); main() { printf("Pi is about %1.15f.\n", daikei(0.0, 1.0, 65536)); } double daikei(double a, double b, int n) { double sum=fun(a); /* The initial value of sum is f(a) */ double interval=(b-a)/n; /* The length of the small interval */ int k; for (k=1; k < n ; k++){ /* add to (n-1)-th value */ sum = sum + 2.0*fun(a+k*interval); } return interval*(sum + fun(b))/2.0; } double fun(double x) { return 4.0/(1.0 + x*x); }