「C言語」の「数学関連関数」の使い方を学ぶ(苦手・・・)
今回は、自分が苦手な「数学関数」について勉強していきたいと思います。
「算数・数学」の理解は難しいけれど、使い方を勉強するのは何とか自分でもできるかもしれない。
「数学関数」の使い方
「C言語」に使われている「数学関数」を使うためには、「math.h」のヘッダーファイルを読み込む必要があります。
このヘッダーファイルの中には、たくさんの関数があり、中には自分には理解できないものもあるので、わかるものだけ学んでいきたいと思います。
「最大値」を求める関数
最大値を求める関数は、「引数」と「戻り値」の違いによって3つ用意されているのですが、「double型」の値の最大値を求める場合は、「fmax」関数を利用します。
「fmaxf」関数は「float型」を扱い、「fmaxl」関数は「long型」を扱うことができます。
例えば、「double型」の値の最大値を求める場合は、
#include <stdio.h> #include <math.h> int main(void) { double num1 = 1.5; double num2 = 2.3; double max = fmax(num1, num2); printf("max=%f\n", max); return 0; }
のようになります。
実行してみると・・・
max=2.300000
のように表示されます。
「最小値」を求める関数
「最小値」を求める場合は、「double型の引数」の場合は、「fmin」関数、「float型の引数」の場合は、「fminf」関数、「long型の引数」の場合は、「fminl」関数を利用します。
「fmin」関数を利用した場合は、
#include <stdio.h> #include <math.h> int main(void) { double num1 = 2.3; double num2 = 5.5; double min = fmin(num1, num2); printf("min=%f\n", min); return 0; }
のようになります。この関数の実行結果は、
min=2.300000
のようになります。
整数値の「切り上げ」
小数点の値を切り上げる関数が「ceil」関数です。
例えば、「1.5」という小数点を含む「double型の値」を「ceil」関数に渡すと、「2.0」が返ってきます。この関数をプログラムで書くと、
#include <stdio.h> #include <math.h> int main(void) { double num = 1.5; double ceil_num = ceil(num); printf("ceil=%f\n", ceil_num); return 0; }
のようになり、このプログラムを実行すると、
ceil=2.000000
のように表示されます。
平方根を求める
ある値の「平方根」を求めるには、「sqrt」関数を使います。
引数が「double」型の場合は「sqrt」関数、「float」型の場合は「sqrtf」関数、を使います。
例えば、「2」の平方根を求めるプログラムは、
#include <stdio.h> #include <math.h> int main(void) { double num = 2.0; printf("sqrt=%f\n", sqrt(num)); return 0; }
となり、実行してみると、
sqrt=1.414214
のように平方根を計算することができます。
コサイン(余弦)を求める
「cos(余弦)」を求めることができる関数が、「cos」関数なのですが、そもそも「cos(コサイン)」が何なのかを忘れてしまっているので、そこも勉強しなおさないといけません。
「cos(コサイン)」は、
のようになるのですが、「A」と「C」の線が「0度」となると、「コサインの値」は「1」になります。/p>
もし、「180度」となった場合は、「コサインの値」は「-1」になります。
ただ・・・「cos」関数に渡すの「ラジアン」と呼ばれる「国際単位系」の値を渡さないといけません。
もう何がなんだかわからなくなってきました。(^^;)
「ラジアン」は、「180度」が「円周率の値」なので、「180度が3.1415926535・・・・ラジアンの値」となるそうです。
この考え方も何か独特ですね。
プログラムを書いてみると、
#include <stdio.h> #include <math.h> int main(void) { double radian = 3.1415926535; // 180度 printf("cos=%f\n", cos(radian)); return 0; }
のようになり、出力結果は、
cos=-1.000000
と表示されます。
サイン(正弦)の値を求める
「サイン(正弦)」の値を求めるために「sin」関数を利用します。
「サイン(正弦)」は、
のようになります。(難しいので、内容には踏み込みません・・・)
この関数の利用方法は、さきほどの「cos(余弦)」を求める時と同じですので、さっそくプログラムを書いてみると、
#include <stdio.h> #include <math.h> int main(void) { double radian = 3.1415926535/2.0; // 90度 printf("sin=%f\n", sin(radian)); return 0; }
となります。これを実行すると、
sin=1.000000e
のように出力されます。
タンジェント(正接)の値を求める
「タンジェント(正接)」の値を求めるために「tan」関数を利用します。
「タンジェント(正接)」は、
のようになります。
#include <stdio.h> #include <math.h> int main(void) { double radian = 3.1415926535/4.0; // 45度 printf("tan=%f\n", tan(radian)); return 0; }
となります。これを実行すると、
tan=1.000000
のようになります。
これらの「三角関数」には、ラジアン値を求めるための「acos(逆余弦)」「asin(逆正弦)」「atan(逆正接)」も用意されています。
「C言語」には他にもさまざまな数学関連の関数がありますので、苦手な数学も少しずつ勉強しながら、使える関数を増やしていきたいと思います。