C++の数

こんにちは、未来のプログラマーさんたち!C++の数の世界へのエキサイティングな旅に導いてくれるガイドとして、私がお迎えしました。プログラミングを教えてきた多くの年月を重ねてきた私が言えるのは、数を理解することはコーディングのABCを学ぶことと同じだということです。それでは、一緒に数を新しい親友にしよう!

C++ Numbers

C++における数の定義

C++では、数は私たちのデジタル世界の構成要素です。それぞれが特別な目的を持つ異なる種類があります。まず基本的なことを説明しましょう。

整数

整数は、物を数えるのに使うような全体の数です。C++には、いくつかの整数の種類があります:

int main() {
int apple_count = 5;
short small_number = 100;
long big_number = 1000000;
long long very_big_number = 1000000000000;

cout << "I have " << apple_count << " apples." << endl;
return 0;
}

この例では、異なる整数型を使って様々な数を保存しています。intは、日常の数え物に最もよく使われる型です。

浮動小数点数

では、小数点を持つ数を扱いたい場合どうでしょうか?それには浮動小数点数が使えます:

int main() {
float pi_approx = 3.14;
double more_precise_pi = 3.14159265359;

cout << "Pi is approximately " << pi_approx << endl;
cout << "A more precise value of Pi is " << more_precise_pi << endl;
return 0;
}

ここで、floatは適度な精度を提供し、doubleはさらに多くの小数点を提供して、より正確に計算を行います。

文字を数として

ここに面白い事実があります。C++では、文字は実際には数として保存されています!

int main() {
char letter = 'A';
int letter_number = letter;

cout << "The letter " << letter << " is stored as the number " << letter_number << endl;
return 0;
}

このコードの出力は「The letter A is stored as the number 65」です。まるでコンピュータが使う秘密のコードのようです!

C++における数学演算

数の定義を学んだところで、数を踊らせてみましょう!C++にはたくさんの数学演算が利用できます:

基本算術

int main() {
int a = 10, b = 3;

cout << "Addition: " << a + b << endl;
cout << "Subtraction: " << a - b << endl;
cout << "Multiplication: " << a * b << endl;
cout << "Division: " << a / b << endl;
cout << "Modulus (remainder): " << a % b << endl;

return 0;
}

このコードは基本的な算術演算を示しています。整数同士の除算は整数結果を返します(3ではなく3.33)。

増加と減少

C++には、数に1を加えたり1を引いたりする便利なトリックがあります:

int main() {
int count = 5;

cout << "Original count: " << count << endl;
count++;
cout << "After increment: " << count << endl;
count--;
cout << "After decrement: " << count << endl;

return 0;
}

++--演算子は、数を1増やしたり1減らしたりする魔法の杖のようです。

数学関数

C++には、より複雑な計算を行うための強力な数学ライブラリもあります:

#include <cmath>

int main() {
double x = 2.0;

cout << "Square root of " << x << " is " << sqrt(x) << endl;
cout << x << " raised to power 3 is " << pow(x, 3) << endl;
cout << "Sine of " << x << " is " << sin(x) << endl;

return 0;
}

<cmath>ヘッダをインクルードすることを忘れないでください。まるで数学の道具箱を導入するようなものです!

C++におけるランダムな数

それでは、プログラムに少しの兴奋を加えましょう!ランダムな数を生成することは、コード内でサイコロを振るようなものです:

#include <cstdlib>
#include <ctime>

int main() {
// ランダムな数生成器をシード
srand(time(0));

// 1から100の間のランダムな数を生成
int random_number = rand() % 100 + 1;

cout << "The magic number is: " << random_number << endl;

return 0;
}

ここで起こっていることは:

  1. <cstdlib>をインクルードしてrand()srand()を使い、<ctime>をインクルードしてtime()を使います。
  2. srand(time(0))は現在時刻に基づいてシードを設定し、毎回異なるランダムな数を生成します。
  3. rand() % 100 + 1は1から100の間のランダムな数を生成します。

まるでデジタルなサイコロローラーがあるようなものです!

常に使用される数学関数の表

ここに、C++でよく使われる数学関数のハンドブックを示します:

関数 説明
abs(x) 絶対値 abs(-5) = 5
sqrt(x) 平方根 sqrt(16) = 4
pow(x, y) xのy乗 pow(2, 3) = 8
sin(x) xの正弦(ラジアン) sin(0) = 0
cos(x) xの余弦(ラジアン) cos(0) = 1
tan(x) xの正接(ラジアン) tan(0) = 0
log(x) xの自然対数 log(2.71828) ≈ 1
ceil(x) xを上界に丸める ceil(3.2) = 4
floor(x) xを下界に丸める floor(3.8) = 3
round(x) xを最も近い整数に丸める round(3.5) = 4

そして、ここまで、私たちはC++の数の土地を旅しました。整数からランダムな数生成まで、さまざまな数を学びました。忘れないでください、練習は完璧を生みます。これらの概念を自分のプログラムで実験してみてください。

いつも私の生徒たちに言うように、コーディングは新しい言語を学ぶのと同じです。より多く使えば、より流暢になります。それでは、進んで計算し、コンピュートし、創造してください!次の大規模なアプリやゲームは、今日学んだ数を操作することから始まるかもしれません。ハッピーコーディング!

Credits: Image by storyset