第3講 for文の学習
第3話 1から100までの和
解答コード例
#include<iostream>
using namespace std;
void main(){
   int w=0;                  
   for(int i=1;i<101;i++)w=w+i;         
   cout<<"1から100までの和="<<w<<endl;    
}
実行画面
1から100までの和=5050

では、1から1000までの和を求めるにはどうしたらよいでしょうか。
void main(){
   int w=0;                  
   for(int i=1;i<
1001;i++)w=w+i;         
   cout<<"1から1000までの和="<<w<<endl;    
}
たった1カ所変更するだけで、コンソールには
1から1000までの和=500500
と正しく表示されます。
ここが、for文の優れたところです。
第2講第7話で考えた1から10までの和の方式なら、
#include<iostream>
using namespace std;
void main(){
   int w;
   w=0;
   w=w+1;
   w=w+2;
   w=w+3;
   w=w+4;
   w=w+5;
   w=w+6;
   w=w+7;
   w=w+8;
   w=w+9;
   w=w+10;
   cout<<"1から10までの和="<<w<<endl;
}
1千行も同じことを書き続けなければなりません。
void main(){
   int w=0;                  
   for(int i=1;i<
1001;i++)w=w+i;         
   cout<<"1から1000までの和="<<w<<endl;    
}
コードも簡単になり、変更も簡単です。
さらに、コードを
#include<iostream>
using namespace std;
void main(){
   int n,w=0;
   cout<<"nの値は?"<<endl;
   scanf("%d",&n);
   for(int i=1;i<n+1;i++)w=w+i;
   cout<<"1から"<<n<<"までの和="<<w<<endl;
}
参考ファイル
と変更し、実行してからコンソールで1000と打ってエンターみて下さい。
9

   scanf("%d",&n);
はnの値をキーボードから取得するときに使います。
実行画面の薄緑色のところがキーボードから打った値です。
このコンソール画面の値が変数nに収納されるわけです。
#include<iostream>
using namespace std;
void main(){
   int n,w=0;
   cout<<"nの値は?"<<endl;
   scanf("%d",&n);
   for(int i=1;i<n+1;i++)w=w+i;
   cout<<"1から"<<n<<"までの和="<<w<<endl;
}
とすると、汎用性のあるプログラムができます。
汎用性とは、幅広く適用したり一般的に活用できる性質を持つという意味です。
広く活用できるプログラムが優れたプログラムです。
汎用性のある普遍的なプログラムを組むことが必要です。
普遍とは、すべてのものに当てはまるという意味です。

では、さらに
#include<iostream>
using namespace std;
void main(){
   int n,w=0;
   cout<<"nの値は?"<<endl;
   scanf("%d",&n);
   for(int i=1;i<n+1;i++)w=w+i;
   cout<<"1から"<<n<<"までの和="<<w<<endl;
}
を改善して、
1+3+5+・・・+15
100+103+・・・+199
なども計算できるようにしていきましょう。
そのためには、終わりの値だけでなく、
はじめの値、変化の幅もキーボードから入力できるようにします。
終わりの値の変数名はnからoに変更し、
はじめの値はh、変化の幅はbとすることにしましょう。

ヒントは、i++の部分を変更します。
i++はi=i+1でした。
i=i+1を変更すれば良いのです。


ただし、今回は出題者が正確に問題を出しているとします。
正確に出しているとはどういう意味かと申しますと、
はじめの値100、終わりの値120、変化の幅3
すなわち、
100+103+・・・+120
という問題は、問題自体が矛盾しています。
3ずつ変化していくとすれば、
終わりの値は118とか221でなければなりません。
省略しないで書くと
100+103+106+109+112+115+118
あるいは
100+103+106+109+112+115+118+121
ですよね。
終わりが120ということはありません。
問題を出すときに、
出題者が終わりの値が何であるかを計算して出さなければならないということです。
終わりの値が分からなくても、計算させるのは後に考えることにします。


尚、
100+103+・・・+199
のような問題を等差数列の和といいます。



第2話へ 
第4話へ

a

魔方陣 数独で学ぶ VBA 入門
数独のシンプルな解き方・簡単な解法の研究
VB講義へ
VB講義基礎へ
初心者のための世界で一番わかりやすいVisual C++入門基礎講座
初心者のための世界で一番わかりやすいVisual Basic入門基礎講座

初心者のための世界で一番わかりやすいVBA入門講義(基礎から応用まで)
初心者のための VC++による C言語 C++ 入門 基礎から応用まで第1部
eclipse java 入門
java 入門 サイト 基礎から応用まで
VC++ C言語 C++ 入門 初心者 基礎から応用まで
本サイトトップへ