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 件のコメント :
コメントを投稿