C++の基礎:数学関数の使い方を学ぶ

提供: Support
移動先: 案内検索

概要

C/C++言語は、さまざまな変数定義、賢明なメモリの使用、および数学の演算子を持っているため、数学演算での操作に適しています。C++には、数学的なタスクを実行できる多くの数学関数があります。演算子の中には、整数を扱うもの、浮動小数点数を扱うものがありますが、ほとんどは整数と浮動小数点数(または倍精度)の両方を扱うことができます。すべての関数は<cmath>ライブラリに含まれているので、これらの関数を使用する前に、以下のようにこのライブラリをインクルードする必要があります。

#include <cmath>

またコンパイラによっては、これらの数学的オペランドを使用するためのオプションが必要な場合があります。(例えば、GNU C/C++では、-lmオプションを使用しなければなりません)


ここでは、C++で使用される数学関数をいくつかご紹介します。

pow関数、powf関数、powl関数

pow関数は、倍精度浮動小数点数(double型)のべき乗を求めるために使用され、以下の例ではaのべき乗を求めています。

int a = 7;
int b = 2;
int c = pow( a, b);

powf関数は浮動小数点数(float)、powl関数はpow関数のlong double型バージョンで、それぞれの実数のべき乗を求める際に使用します。

sqrt関数、cbrt関数

sqrt()関数は、与えられた値の平方根を求めるために使用されます。

float a = 16;
float sq = sqrt(a);

cbrt関数は、与えられた値の立方根を求めるために使用されます。

float a = 27;
float cb = cbrt(a);

round関数、floor関数、ceil関数

round()関数は、与えられた値の最も近い整数に丸められた値を返します。 floor()関数は、与えられた値の最も近い整数に切り捨てられた値を返します。 ceil()関数は、与えられた値の最も近い整数に切り上げられた値を返します。

float a = 7.49;
int b = floor(a);
int c = ceil(a);
int r = round(a);

min関数、max関数

min関数とmax関数は、2つの値から最小と最大を返します。

int a = 8, b = 11;
int c = max( a, b);
int d = min( a, b);

abs関数、 fabs関数

abs関数とfabs関数は、任意の整数型、浮動小数点数型の絶対値を返します。

int a = -7;
int b = abs( a);
 
float f = -7.2;
float g = fabs(f);

三角関数

ここでは、三角関数のいくつかを紹介します。

float x=0.1;
 
float a = sin(x);
float b = cos(x);
float c = tan(x);
 
float e = asin(a);
float f = acos(b);
float g = atan(c);
 
float h = sinh(e);
float i = cosh(f);
float j = tanh(g);
 
flaot k = exp(x);
float l = log(x);

上記の関数やその他の関数はすべて、cmathライブラリにあります。

またC++ Builder、VCL、FMXアプリケーションでは、C/C++が提供する数学関数に加えてMax()、Min()、Sin()、Cos()など先頭が大文字で始まるDelphiが提供しているランタイムライブラリ(RTL)の数学関数も利用できます。

最後にライブラリにはいくつかの定数があります。例えば、円周率は、以下のように円の周辺と円周の面積を計算するために使用されます。

float radius = 5.0;
float peripheral = 2*M_PI*radius;
float circular_area = M_PI*radius*radius;

関連情報