を取り上げます.
プログラムで, 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);
}