学生向けプログラミング入門 | 無料

学生向けにプログラミングを無料で解説。Java、C++、Ruby、PHP、データベース、Ruby on Rails, Python, Django

C++ | 09 | 演算子

↓↓クリックして頂けると励みになります。



08 | 論理演算】 << 【ホーム】 >> 【10 | 変数

演算子を使用したプログラム
演算子を使用したプログラム



C++の演算子(operators)は、プログラムでさまざまな操作を実行するための記号またはキーワードです。
C++の演算子は、算術、比較、論理、ビット単位、代入、その他の種類の演算を実行するために使用されます。
以下に、C++でよく使われる演算子の一部を紹介します。

  • 算術演算子:

加算 (+)
減算 (-)
乗算 (*)
除算 (/)
剰余 (%)

  • 比較演算子:

等しい (==)
等しくない (!=)
大小 (<, >)
以下または等しい (<=)
以上または等しい (>=)

  • 論理演算子:

論理積 (AND) を示す「&&
論理和 (OR) を示す「||
否定 (NOT) を示す「!

  • ビット単位演算子:

ビット単位のAND (&)
ビット単位のOR (|)
ビット単位のXOR (^)
ビット反転 (~)
左シフト (<<)
右シフト (>>)

  • 代入演算子:

単純代入 (=)
加算代入 (+=)
減算代入 (-=)
乗算代入 (*=)
除算代入 (/=)
余り代入 (%=)
左シフト代入 (<<=)
右シフト代入 (>>=)
ビットAND代入 (&=)
ビットOR代入 (|=)
ビットXOR代入 (^=)

  • その他の演算子:

条件演算子 (?:)
カンマ演算子 (,)
アドレス演算子 (&)
ポインタ演算子 (*)
sizeof演算子 (sizeof)


これらの演算子は、C++プログラムで様々な操作を行うために使用されます。
それぞれの演算子には、特定の意味と使用方法があります。


Visual Studio Codeで以下のcppファイルを作成して下さい。


新規作成 【EnzanTest4.cpp】

#include <iostream>

int main() {

	int n, max, goukei;

	std::cout << "nの倍数の和を求めるプログラムです。" << std::endl;
	std::cout << "n を自然数で入力してください。 n= " << std::endl;

	for (std::cin >> n ; !std::cin ; std::cin >> n){

		std::cin.clear();
		std::cin.ignore();
		std::cout << "入力が間違ってます。" << std::endl << "n を自然数で入力してください。 n= ";

	}

	std::cout << "1以上max未満の和を求めます。" << std::endl;
	std::cout << "maxを自然数で入力してください。 max= " << std::endl;

    for (std::cin >> max ; !std::cin ; std::cin >> max){

        std::cin.clear();
        std::cin.ignore();
        std::cout << "入力が間違ってます。" << std::endl << "maxを自然数で入力してください。 max= " ;
    }

	goukei = 0;

	if ((max%n) == 0) {
		for (int i=1; i<(max/n); i++) {
			goukei += i*n;
		}
	}

	else {
        for (int i=1; i<=(max/n); i++) {
            goukei += i*n;
        }
    }
	std::cout << "1以上" << max << "未満のすべての" << n << "の倍数の和は " << goukei << "です。" << std::endl;
}



1以上max未満の全てのnの倍数の和を計算するプログラムです。
「n」「max」は、キーボードから入力できます。


整数変数の値を一つだけ増やしたり減らしたりすることは非常に頻繁に行われます。
数を1つ増やすことをインクリメントと呼び、1つ減らすことをデクリメントといいます。


インクリメントは変数の後ろに「++」をつけます。
デクリメントは変数の後ろに「−−」をつけます。


このプログラムではfor文の条件の中にインクリメントを使用しています。
ループするたびに変数iの値が一ずつ増えます。


サンプルプログラムを実行してみましょう。
1以上max未満の全てのnの倍数の和を計算するプログラムです。
「n」「max」は、キーボードから入力できます。

~/Desktop/Programming/CPP $ cd "/Users/**/Desktop/Programming/CPP/" && g++ tempCodeRunnerFile.cpp -o tempCodeRunnerFile 
&& "/Users/**/Desktop/Programming/CPP/"tempCodeRunnerFile

nの倍数の和を求めるプログラムです。
n を自然数で入力してください。 n= 
4
1以上max未満の和を求めます。
maxを自然数で入力してください。 max= 
100
1以上100未満のすべての4の倍数の和は 1200です。



Visual Studio Codeで以下のcppファイルを作成して下さい。


新規作成 【EnzanTest5.cpp】

#include <iostream>

int main() {

	int n, min, x;

	std::cout << "min以上の最小のnの倍数を求めるプログラムです。" << std::endl;
	std::cout << "nの倍数のnを自然数で入力してください。 n= " << std::endl;

	for (std::cin >> n ; !std::cin ; std::cin >> n){

		std::cin.clear();
		std::cin.ignore();
		std::cout << "入力が間違ってます。" << std::endl << "n を自然数で入力してください。 n= ";
    }

	std::cout << "最小値minを自然数で入力してください。 min= " << std::endl;

	for (std::cin >> min ; !std::cin ; std::cin >> min){

		std::cin.clear();
		std::cin.ignore();
		std::cout << "入力が間違ってます。" << std::endl << "minを自然数で入力してください。min = " ;
    }

	if ((min%n) == 0) {
	    x = min;
	}
	else {
        x = ((min / n )*n) + n;	
	}
    
	std::cout << min << "以上の最小の" << n << "の倍数は" << x << "です。" << std::endl;
}



min以上の最小のnの倍数を求めるプログラムです。
例えば100以上で最小の3の倍数は102となります。


min、nはキーボードから入力できます。


x = ( min / n ) * n;」とすると、変数xの値は割り切れない場合にはmin未満の最大のnの倍数になっています。
min = 9, n = 2 の場合には、「x」は8となります。
一方、割り切れる場合にはminに等しくなります。
プログラムはこのことを利用しています。


サンプルプログラムを実行してみましょう。
min以上の最小のnの倍数を求めるプログラムです。
min、n はキーボードから入力できます。

~/Desktop/Programming/CPP $ cd "/Users/**/Desktop/Programming/CPP/" && g++ tempCodeRunnerFile.cpp -o tempCodeRunnerFile 
&& "/Users/**/Desktop/Programming/CPP/"tempCodeRunnerFile

min以上の最小のnの倍数を求めるプログラムです。
nの倍数のnを自然数で入力してください。 n= 
4
最小値minを自然数で入力してください。 min= 
10
10以上の最小の4の倍数は12です。



Visual Studio Codeで以下のcppファイルを作成して下さい。


新規作成 【EnzanTest6.cpp】

#include <iostream>

int main() {

	int m, min, x, max, goukei;

	std::cout << "min以上max未満のmの倍数の和を計算するプログラムです。" << std::endl;

	std::cout << "m を自然数で入力してください。 m = " << std::endl;

        for (std::cin >> m ; !std::cin ; std::cin >> m){

			std::cin.clear();
			std::cin.ignore();
			std::cout << "入力が間違ってます。" << std::endl << "m を自然数で入力してください。m = ";

        }

		std::cout << "min以上max未満の和を求めます。" << std::endl;

		std::cout << "maxを自然数で入力してください。 max= " << std::endl;

        for (std::cin >> max ; !std::cin ; std::cin >> max){

			std::cin.clear();
			std::cin.ignore();
			std::cout << "入力が間違ってます。" << std::endl << "maxを自然数で入力してください。 max= " ;

        }

		std::cout << "最小値minを自然数で入力してください。 min= " << std::endl;

        for (std::cin >> min ; !std::cin ; std::cin >> min){

			std::cin.clear();
			std::cin.ignore();
			std::cout << "入力が間違ってます。" << std::endl << "minを自然数で入力してください。min = " ;

        }

	if ((min%m) == 0) {

                x = min;
        }

        else {

                x = ((min / m )*m) + m;
        }

	goukei = 0;
	
	for (int i=x; i<max; i+=m) {

		goukei += i;
	} 

	std::cout << min << "以上" << max << "未満の" << m << "の倍数の和は" << goukei << "です。" << std::endl;

}



サンプルプログラムをビルドして実行してみましょう。
min以上max未満のmの倍数の和を計算するプログラムです。
min, maxおよび倍数 n はキーボードから入力できます。

~/Desktop/Programming/CPP $ cd "/Users/**/Desktop/Programming/CPP/" && g++ tempCodeRunnerFile.cpp -o tempCodeRunnerFile 
&& "/Users/**/Desktop/Programming/CPP/"tempCodeRunnerFile

min以上の最小のnの倍数を求めるプログラムです。
nの倍数のnを自然数で入力してください。 n= 
5
最小値minを自然数で入力してください。 min= 
100       
100以上の最小の5の倍数は100です。



08 | 論理演算】 << 【ホーム】 >> 【10 | 変数





↓↓クリックして頂けると励みになります。