1-13. 数値の扱い
公開日: 16:35 1. 基本編/1-13. 数値の扱い
通常、数値を扱うときはint、short、long、float、doubleなどのような基本データ型を使います。C++におけるデータ型でそれぞれの型が表現できる値や範囲について述べました。
C++での数値の定義
これまでのサンプルで数値の定義をしてきました。ここでは更にC++での様々な型を整理したサンプルを見ていきます。#include <iostream>
using namespace std;
int main ()
{
// 数字の定義:
short s;
int i;
long l;
float f;
double d;
// 数字の代入;
s = 10;
i = 1000;
l = 1000000;
f = 230.47;
d = 30949.374;
// 数字の出力;
cout << "short s :" << s << endl;
cout << "int i :" << i << endl;
cout << "long l :" << l << endl;
cout << "float f :" << f << endl;
cout << "double d :" << d << endl;
return 0;
}
上のコードをコンパイルし実行すると、次の結果が得られます。short s :10
int i :1000
long l :1000000
float f :230.47
double d :30949.4
C++での数値演算
あらゆる関数が作れることに加えて、C++には便利な関数があります。これらの関数は C/C++標準ライブラリで利用可能で、組み込み関数と呼ばれます。これらの関数を使うにはインクルード(組み込み)する必要があります。C++は豊富な算術命令を備えており、様々な数値を扱えます。次の表はC++で利用できる便利な算術関数です。
これらの関数を利用するためには
| 構文 | 説明 |
|---|---|
| double cos(double); | 角度をdouble型で取り余弦を返す |
| double sin(double); | 角度をdouble型で取り正弦を返す |
| double tan(double); | 角度をdouble型で取り正接を返す |
| double log(double); | 数値を取り自然対数を返す |
| double pow(double x,double y); | xをy乗する |
| double hypot(double,double); | 各引数の2乗の和の平方根を返す |
| double sqrt(double); | 数値を取り平方根を返す |
| double abs(int); | 整数値を取り絶対値を返す |
| double fabs(double); | 実数値を取り絶対値を返す |
| double floor(double); | 引数以下の整数値を返す |
#include <iostream>
#include <cmath>
using namespace std;
int main ()
{
// 数値定義
short s = 10;
int i = -1000;
long l = 100000;
float f = 230.47;
double d = 200.374;
// 数値演算
cout << "sin(d) :" << sin(d) << endl;
cout << "abs(i) :" << abs(i) << endl;
cout << "floor(d) :" << floor(d) << endl;
cout << "sqrt(f) :" << sqrt(f) << endl;
cout << "pow( d, 2) :" << pow(d, 2) << endl;
return 0;
}
sign(d) :-0.634939
abs(i) :1000
floor(d) :200
sqrt(f) :15.1812
pow( d, 2 ) :40149.7
C++における乱数
乱数を必要とする場面は多いです。乱数の生成のためには2つの関数を知る必要があります。1つ目はrand()関数であり、ただ擬似乱数を返します。この問題を解決するためには最初にsrand()関数を呼びます。
乱数を生成する簡単な例を示します。この例ではrand()関数にランダムな種(seed)を用意するため、time()関数を使ってシステム時間の秒数を取得させています。
#include <iostream>
#include <ctime>
#include <cstdlib>
using namespace std;
int main ()
{
int i,j;
// 種をセット
srand( (unsigned)time( NULL ) );
/* 乱数を10個生成 */
for( i = 0; i < 10; i++ )
{
// 乱数の生成
j= rand();
cout <<"乱数 : " << j << endl;
}
return 0;
}
上のコードをコンパイルし実行すると、次のような結果が得られます。
乱数 : 1748144778
乱数 : 630873888
乱数 : 2134540646
乱数 : 219404170
乱数 : 902129458
乱数 : 920445370
乱数 : 1319072661
乱数 : 257938873
乱数 : 1256201101
乱数 : 580322989
0 件のコメント :
コメントを投稿