
絶対値を計算するにはabs関数を使用します。
なお、abs関数を使うには #include <stdlib.h> が必要です。
abs関数の使い方は次の通りです。
[ 絶対値 ]
数直線上における原点からの距離。
要するに、正の値はそのまま、負の値は正にした数値。
次のプログラムは絶対値を求める例です。絶対値 = abs(数値);
このプログラムの実行結果は次の通りになります。#include <stdio.h> #include <stdlib.h> void main(void) { printf("%d\n",abs(10)); printf("%d\n",abs(-10)); return; }
10
10
累乗を計算するにはpow関数を使用します。
なお、pow関数を使うには #include <math.h> が必要です。
pow関数の使い方は次の通りです。
なお、値はdouble型になるので、int型で記憶すると不正確になります。
次のプログラムは、累乗を求める例です。累乗 = pow(数値,指数);
このプログラムの実行結果は次の通りになります。#include <stdio.h> #include <math.h> void main(void) { printf("%dの%d乗 = %f\n",5,2,pow(5,2)); printf("%dの%d乗 = %f\n",8,3,pow(8,3)); printf("%dの%d乗 = %f\n",2,10,pow(2,10)); return; }
5の2乗 = 25.000000
8の3乗 = 512.000000
2の10乗 = 1024.000000

平方根を計算するにはsqrt関数を使用します。
なお、sqrt関数を使うには #include <math.h> が必要です。
sqrt関数の使い方は次の通りです。
[ 平方根 ]
2乗するとその数になる数値。
元の数値を正方形の面積とすると、平方根は辺の長さに当たる。
次のプログラムは、平方根を求める例です。平方根 = sqrt(数値);
このプログラムの実行結果は次の通りになります。#include <stdio.h> #include <math.h> void main(void) { printf("√%d = %f : %f * %f = %f\n",100,sqrt(100),sqrt(100),sqrt(100),sqrt(100) * sqrt(100)); printf("√%d = %f : %f * %f = %f\n",2,sqrt(2),sqrt(2),sqrt(2),sqrt(2) * sqrt(2)); return; }
四捨五入されているため正確に計算できているように見えるのですが、
√100 = 10.000000 : 10.000000 * 10.000000 = 100.000000
√2 = 1.414214 : 1.414214 * 1.414214 = 2.000000

三角関数を計算するには次の関数を使用します。
なお、これらの関数を使うには #include <math.h> が必要です。
| 関数名 | 三角関数値 |
|---|---|
| sin | サイン |
| cos | コサイン |
| tan | タンジェント |
| asin | アークサイン |
| acos | アークコサイン |
| atan | アークタンジェント |
これらの関数の使い方はいずれも同じなので、以後はtan関数を例に説明します。
[ アーク系三角関数 ]
アーク系三角関数は、普通の三角関数の逆計算をします。
普通の三角関数は、角度から辺の長さの割合を求めますが、
アーク系三角関数は、辺の長さの割合から角度を求めます。
ただし、この角度は普段我々が使用する90度が直角となる角度ではなく、タンジェント = tan(ラジアン角度);
ラジアン = (度 * 3.14159 / 180)
毎回この計算を行うのは面倒なので、次のようなマクロを作成します。
[ ラジアン ]
円弧と半径の長さが等しくなる位置を1ラジアンとする角度の単位。
コンピュータの世界ではほとんどの場合にラジアンを使用する。
次のプログラムは、身長160cmの人が5m離れた位置から木を見上げたときに、#define RADIAN(ARC) ((ARC) * 3.14159 / 180)
このプログラムの実行結果は次の通りになります。#include <stdio.h> #include <math.h> #define RADIAN(ARC) ((ARC) * 3.14159 / 180) void main(void) { double stature = 160; double distance = 500; double arc = 40; double tree; tree = distance * tan(RADIAN(arc)) + stature; printf("%fm\n",tree / 100); return; }
三角関数でも計算を繰り返すと誤差がでるため注意が必要です。
5.795493m