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++で利用できる便利な算術関数です。

これらの関数を利用するためにはヘッダファイル<cmath>をインクルードする必要があります。
構文説明
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
  • ?±??G???g???[?d????u?b?N?}?[?N???A

0 件のコメント :

コメントを投稿