1~100までの整数(偶数のみ)の加算結果を表示する
1~100までの整数のうち偶数のみの加算結果を求めます。
偶数のみを加算する方法として、
1.1~100までの偶数のみを生成して加算する
2.1~100まで全ての整数を生成し偶数か判断(判定)して加算する
の2種の方法で加算結果を求めてみます。
今回も、MicrofoftのVisual Studio 2022を使用します。
まずは、
1.1~100までの偶数のみを生成して加算するです。
・プロジェクトを作成します。
Visual Studio 2022を起動し、
新しいプロジェクトを作成します。
・プロジェクトタイプ:"コンソールアプリ"
・プロジェクト名:"ct_103_1"
とします。
※プロジェクトの作成方法は、PCでC言語基礎編の
・1~100までの整数の加算結果を表示する
・2つの入力値(整数値)の四則演算結果を表示する
を参考にして下さい。
・プログラム記述・編集画面が表示されるので、
以下のプログラムを記述します。
プログラムの記述内容
// 1~100までの整数(偶数のみ)を加算_1 #include <iostream> int main() { // 変数宣言 int value, total, start_value, stop_value; // 変数の初期化 total = 0; start_value = 2; stop_value = 100; // 範囲値の加算ループ for (value = start_value; value <= stop_value; value+=2 ) { total += value; } // 加算結果の表示 printf("加算結果: %d\n", total); return EXIT_SUCCESS; }
簡単なプログラム解説です。
・変数宣言
各値を格納するための変数を宣言
int value, total, start_value, stop_value;
value:1~100までの偶数のみの生成数値を格納
total:1~100までの偶数のみの加算結果を格納
start_value:繰り返し処理時のスタート値を格納 ( 2 )
※偶数のみの加算結果なので、1からではなく2から始めます。
stop_value:繰り返し処理時のストップ値を格納 ( 100 )
・範囲値の加算ループ
繰り返し制御文のfor( )を使用して、2~100まで(偶数のみ)を加算
for( )文は、
for( 初期値; 継続条件式; 繰り返し時の増加減式 ) { }
for( value = start_value; value <= stop_value; value+=2 ){ }
これは、
変数valueの値を変数start_value( 2 )の値で初期化、
変数valueの値が、変数stop_value( 100 )の値以下の条件で、
繰り返し毎に、変数value値に2ずつ加算する( 2, 4, 6, 8, 10・・・100 )
※偶数のみの加算なので2ずつ加算して偶数のみを生成します。
value+=2 ( value = value + 2 )
繰り返し(ループ)内では、
変数totalに、繰り返し毎回の変数value値を加算します。
・加算結果の表示
範囲値の加算ループで変数totalに求めた1~100までの(偶数のみ)加算結果を表示
分岐制御文については、
Arduino編の 制御文法を使う(分岐)条件により流れを変える
繰り返し制御文については、
Arduino編の 制御文法を使う(反復)条件により処理を繰り返す
でもう少し詳しく解説しています
・実行してみます。
上段メニュー"デバッグ(D)"のサブメニューより、
"デバッグなしで開始(H)"を選択します。
・実行結果は、デバッグコンソール画面が開き表示されます。
※この実行では、1~100までの偶数のみの加算結果で、2050と表示されます。
※この画面は、何かのキーを打鍵することで閉じることができます。
続いて
2.1~100まで全ての整数生成し偶数かを判断(判定)して加算する です。
・プロジェクトを作成します。
Visual Studio 2022を起動し、
新しいプロジェクトを作成します。
・プロジェクトタイプ:"コンソールアプリ"
・プロジェクト名:"ct_103_2"
とします。
・プログラム記述・編集画面が表示されるので、
以下のプログラムを記述します。
プログラムの記述内容
// 1~100までの整数(偶数のみ)を加算 #include <iostream> int main() { // 変数宣言 int value, total, start_value, stop_value; // 変数の初期化 total = 0; start_value = 1; stop_value = 100; // 範囲値の加算ループ for (value = start_value; value <= stop_value; value++ ) { // 偶数の判定 if (value % 2 == 0) { total += value; } } // 加算結果の表示 printf("加算結果: %d\n", total); return EXIT_SUCCESS; }
簡単なプログラム解説です。
・変数宣言
各値を格納するための変数を宣言
int value, total, start_value, stop_value;
value:1~100までの生成数値を格納
total:1~100までの加算結果を格納
start_value:繰り返し処理時のスタート値を格納 ( 1 )
stop_value:繰り返し処理時のストップ値を格納 ( 100 )
・範囲値の加算ループ
繰り返し制御文のfor()を使用して、1~100まで(偶数のみ)を加算
for( )文は、
for( 初期値; 継続条件式; 繰り返し時の増加減式 ) { }
for( value = start_value; value <= stop_value; value++ ){ }
これは、
変数valueの値を変数start_value( 1 )の値で初期化、
変数valueの値が、変数stop_value( 100 )の値以下の条件で、
繰り返し毎に、変数value値に1ずつ加算する( 1, 2, 3, 4, 5, 6・・・100 )
※偶数のみの加算なので2ずつ加算して偶数のみを生成します。
繰り返し(ループ)内では、
分岐制御文 if( )文を使い、変数valueの値が偶数か確認します。
確認方法は、"value % 2 == 0"
※変数 value の2の剰余を求め、0であれば偶数、
0でなければ奇数と判断できます。
変数 valueの値が、偶数と判定された場合のみ、
変数totalに、繰り返し毎の変数value値を加算します。
※このアルゴリズムの場合、
無駄な(奇数分の)ループが発生します。
・加算結果の表示
範囲値の加算ループで変数totalに求めた1~100までの(偶数のみ)加算結果を表示
・実行してみます。
上段メニュー"デバッグ(D)"のサブメニューより、
"デバッグなしで開始(H)"を選択します。
・実行結果は、デバッグコンソール画面が開き表示されます。
※この実行では、1~100までの偶数のみの加算結果で、2050と表示されます。
※この画面は、何かのキーを打鍵することで閉じることができます。