next up previous
: 千鳥足 : 標準関数を使った例 : 標準入力からの入力

算術関数

標準ライブラリ math.h にはいくつかの算術関数が定義されている。 算術関数には以下のようなものがある。

sqrt(x) $\sqrt{x}$
log(x) $\ln{x} = \textrm{log}_ex$
log10(x) $\log{x} = \textrm{log}_{10}x$
exp(x) $e^x$
sin(x) $\sin{x}$
cos(x) $\cos{x}$
tan(x) $\tan{x}$
asin(x) $\arcsin{x} = \textrm{sin}^{-1}x$
acos(x) $\arccos{x} = \textrm{cos}^{-1}x$
atan(x) $\arctan{x} = \textrm{tan}^{-1}x$
sinh(x) $\sinh{x}$
cosh(x) $\cosh{x}$
tanh(x) $\tanh{x}$
fabs(x) $\vert x\vert$
paw(x,y) $x^y$


ここで注意することは、変数 x,(y)double 型の変数を 用いること、関数の返す値も double 型であることである。また、標 準ライブラリ math.h 使う時はコンパイル時にオプション ``-lm''をつける必要がある。 以下に使 用例を示す。4


flower.o -------------------------------------------------------------

#include<math.h>                      /* 算術関数を定義した標準ライブラリ */

int main(void){
  double PI = 3.1415926;
  double r,t, x,y, a,b;
  int i;

  for(r = 0.;r < 5.; r+=0.05){        /* 動径成分を for 文で回す */
    for(i = 0; i < 360; i+=1){        /* 角度成分を for 文で回す */
      t = (double)i*180./PI;          /* 度 --> radian 変換 */
      a = cos(10.*t);                 /* cos 関数 */
      b = tan(r*sin(2.*r));           /* sin,tan 関数 */
      if(a < b){                      /* a < b の時にだけ値を出力する */
	x = r*cos(t);                 /* (r,t) --> (x,y) に変換 */
	y = r*sin(t);
	printf("%f %f \n",x,y);
      }
    }
  }
}

実行結果 -------------------------------------------------------------

s1:~/c_text> gcc -o flower flower.c -lm
s1:~/c_text> ./flower > out.dat
s1:~/c_text> gnuplot


gnuplot> plot"out.dat"