C++ 数値
通常、数値が必要なときは、int、short、long、float、double などのプリミティブデータ型を使用します。これらの数値用データ型の取り得る値と数値範囲については、C++ データ型の章で説明しました。
C++ での数値の定義
以前の章のさまざまな例で数値を定義しました。次に、C++ でさまざまな型の数値を定義する総合的な例を示します。
例
上記のコードをコンパイルして実行すると、次の結果が生成されます。
short s :10 int i :1000 long l :1000000 float f :230.47 double d :30949.4
C++ での数学演算
C++ では、さまざまな関数を作成できるだけでなく、さまざまな便利な関数も利用できます。これらの関数は標準の C および C++ ライブラリに書かれており、組み込み関数です。プログラム内でこれらの関数を参照できます。
C++ には豊富な数学関数が組み込まれており、さまざまな数値を処理できます。次の表に、C++ の便利な組み込み数学関数をいくつか示します。
これらの関数を利用するには、数学ヘッダーファイルをインクルードする必要があります<cmath>。
| 番号 | 関数 & 説明 |
|---|---|
| 1 | double cos(double); この関数は、ラジアン角(double 型)のコサインを返します。 |
| 2 | double sin(double); この関数は、ラジアン角(double 型)のサインを返します。 |
| 3 | double tan(double); この関数は、ラジアン角(double 型)のタンジェントを返します。 |
| 4 | double log(double); この関数は、引数の自然対数を返します。 |
| 5 | double pow(double, double); 最初の引数を x、2 番目の引数を y とすると、この関数は x の y 乗を返します。 |
| 6 | double hypot(double, double); この関数は、2つの引数の二乗和の平方根を返します。つまり、引数が直角三角形の直角を挟む2辺である場合、関数は斜辺の長さを返します。 |
| 7 | double sqrt(double); この関数は、引数の平方根を返します。 |
| 8 | int abs(int); この関数は、整数の絶対値を返します。 |
| 9 | double fabs(double); この関数は、任意の浮動小数点数の絶対値を返します。 |
| 10 | double floor(double); この関数は、渡された引数以下で最大の整数を返します。 |
次は、数学演算に関する簡単な例です。
例
上記のコードをコンパイルして実行すると、次の結果が生成されます。
sin(d) :-0.634939 abs(i) :1000 floor(d) :200 sqrt(f) :15.1812 pow( d, 2 ) :40149.7
C++ での乱数
多くの場合、乱数を生成する必要があります。乱数生成器には関連する関数が2つあります。1つはrand()この関数は擬似乱数を1つ返すだけです。乱数を生成する前に、必ず呼び出す必要がありますsrand()関数。
次は、乱数生成に関する簡単な例です。この例では、time()関数を使用してシステム時刻の秒数を取得し、rand() 関数を呼び出して乱数を生成します:
例
上記のコードをコンパイルして実行すると、次の結果が生成されます。
随机数: 1748144778 随机数: 630873888 随机数: 2134540646 随机数: 219404170 随机数: 902129458 随机数: 920445370 随机数: 1319072661 随机数: 257938873 随机数: 1256201101 随机数: 580322989
C++ での数学定数
C++ では、数学定数(π、e、黄金比など)は多くのアルゴリズムやアプリケーションにとって不可欠な要素です。初期のバージョンの C++ ではこれらの定数は直接提供されていませんでしたが、C++20 以降、標準ライブラリにはいくつかの一般的な数学定数が導入され、より効率的で統一された方法でアクセスできるようになりました。
詳細は以下を参照してください:C++ 標準ライブラリ<numbers>。
π
- 定数:
std::numbers::pi - 型:
std::float32_t(32ビット浮動小数点)、std::float64_t(64ビット浮動小数点)
例
#include <iostream>
int main() {
std::cout << "pi: " << std::numbers::pi << std::endl;
}
自然対数の底 e (オイラー数)
- 定数:
std::numbers::e - 型:
std::float32_t、std::float64_t
std::cout << "e: " << std::numbers::e << std::endl;
黄金比 φ (Golden Ratio)
- 定数:
std::numbers::phi - 型:
std::float32_t、std::float64_t
std::cout << "phi: " << std::numbers::phi << std::endl;
例
#include <cmath>
#include <numbers>
int main() {
std::cout << "pi: " << std::numbers::pi << std::endl;
std::cout << "e: " << std::numbers::e << std::endl;
std::cout << "phi: " << std::numbers::phi << std::endl;
return 0;
}
出力結果は次のとおりです:
pi: 3.14159 e: 2.71828 phi: 1.61803その他の拡張