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

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

C++プログラミング入門その11 特別な演算子を使用したプログラム

>>この記事には書き直した新しいページがあります。<<


<<前  [TOP]  次>>


Visual Studioで新規プロジェクトを作り、次のcppファイルを作成して下さい。


【EnzanTest4.cpp】

#include <iostream>

void 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 は、キーボードから入力できます。





Visual Studioで新規プロジェクトを作り、次のcppファイルを作成して下さい。


【EnzanTest5.cpp】

#include <iostream>

void 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の倍数を求めるプログラムです。
例えば、100以上で最小の3の倍数は102となります。
min、n はキーボードから入力できます。





Visual Studioで新規プロジェクトを作り、次のcppファイルを作成して下さい。


【EnzanTest6.cpp】

#include <iostream>

void 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 はキーボードから入力できます。





<<前  [TOP]  次>>