1. 代表的な数学関数
数値演算を行う関数で、様々な算術演算を行います。#include <math.h>
が必要です。「#include」については「18-2」 を参照してください。
関数 | 説明 | 使用例 |
---|---|---|
exp(x) | 指数関数e の x乗の値を返す。 |
double y; y = exp(1.0); ・・・ y は 2.718282 |
log(x) | 自然対数(e を底とする対数)logex の値を返す。 |
double y; y = log(2.718282); ・・・ y は 1 |
log10(x) | 常用対数(10を底とする対数)log10x の値を返す。 |
double y; y = log10(100); ・・・ y は 2 |
sqrt(x) | x の平方根の値を返す。 |
double y; y = sqrt(2.0); ・・・ y は 1.41421 |
pow(x, y) | x の y乗の値を返す。 |
double z; z = pow(2.0, 3.0); ・・・ z は 8.0 |
sin(x) | x(ラジアン)のサイン値を返す。 ※ 角度をラジアン単位で指定する。 |
double y; y = sin(90.0 * 3.14159 / 180.0); ・・・ 90°のサイン値 y は 1.0 |
cos(x) | x(ラジアン)のコサイン値を返す。 ※ 角度をラジアン単位で指定する。 |
double y; y = cos(90.0 * 3.14159 / 180.0); ・・・ 90°のコサイン値 y は 0.0 |
tan(x) | x(ラジアン)のタンジェント値を返す。 ※ 角度をラジアン単位で指定する。 |
double y; y = tan(45.0 * 3.14159 / 180.0); ・・・ 45°のタンジェント値 y は 1.0 |
abs(n) |
int型データ n の絶対値を int型で返す。 #include <stdlib.h> が必要。 |
int a; a = abs(-2); ・・・ -2 の絶対値は 2 |
fabs(x) | double型データ x の絶対値を double型で返す。 |
double y; y = fabs(-23.4); ・・・ -23.4 の絶対値は 23.4 |
ceil(x) | データ x を切り上げた値を返す。 |
double y; y = ceil(12.11); ・・・ y は 13 y = ceil(-5.68); ・・・ y は -5 |
floor(x) | データ x を切り下げた値を返す。 |
double y; y = floor(12.11);・・・ y は 12 y = floor(-5.68);・・・ y は -6 |
fmod(x) | x / y の余りの値を返す。 |
double z; z = fmod(10.5, 3.2); ・・・ z は 0.9 |
〇 演習問題
0°~180°まで15°おきにサイン値、コサイン値、タンジェント値を求なさい。
【実行結果例】
x sin( x ) cos( x ) tan( x )
0.00 0.00000 1.00000 0.00000
15.00 0.25882 0.96593 0.26795
30.00 0.50000 0.86603 0.57735
45.00 0.70711 0.70711 1.00000
60.00 0.86602 0.50000 1.73205
75.00 0.96593 0.25882 3.73203
90.00 1.00000 0.00000 753695.99514
105.00 0.96593 -0.25882 -3.73207
120.00 0.86603 -0.50000 -1.73206
135.00 0.70711 -0.70711 -1.00000
150.00 0.50000 -0.86602 -0.57735
165.00 0.25882 -0.96593 -0.26795
180.00 0.00000 -1.00000 -0.00000
※ π(パイ)は 3.14159 で計算しています。
解答例
#include <math.h>
#include <stdio.h>
int main(void)
{
double x, r, y1, y2, y3;
printf(" x sin( x ) cos( x ) tan( x )\n");
for (x = 0.0; x <= 180.0; x += 15.00) {
r = x * 3.14159 / 180.0;
y1 = sin(r);
y2 = cos(r);
y3 = tan(r);
printf("%6.2f %12.5f %12.5f %12.5f\n", x, y1, y2, y3);
}
return 0;
}
コメント