第5講 if文に挑戦しよう 
第5話 if文とfor文の組み合わせ

第5話では、if文とfor文を組み合わせて、次の問題を解くソフトを作りましょう。
Form1から限界値を与えておいて、
自然数の累乗の和が、第何項目で限界値を超えるかを計算するソフトです。

例えば、限界値として1000を選んだとして
1+2+3+・・・+?
などの和がはじめて1000を越えるのは何項目まで足していったときかを求めさせます。


左のようなForm1を作ったら、計算実行をダブルクリックしてプログラミングしましょう。



(コピーペースト用
int g;
int i;
int w;
int max=1000000;

g=int::Parse(textBox1->Text);

w=0;
for(i=1;i<max;i++){
w=w+i;
if(w>g)break;
}
textBox2->Text=i.ToString();

w=0;
for(i=1;i<max;i++){
w=w+i*i;
if(w>g)break;
}
textBox3->Text=i.ToString();

w=0;
for(i=1;i<max;i++){
w=w+i*i*i;
if(w>g)break;
}
textBox4->Text=i.ToString();

w=0;
for(i=1;i<max;i++){
w=w+i*i*i*i;
if(w>g)break;
}
textBox5->Text=i.ToString();

w=0;
for(i=1;i<max;i++){
w=w+i*i*i*i*i;
if(w>g)break;



int g;
int i;
int w;
int max=1000000;

g=int::Parse(textBox1->Text);

w=0;
for(i=1;i<max;i++){
    w=w+i;
    if(w>g)break;
}
textBox2->Text=i.ToString();

w=0;
for(i=1;i<max;i++){
    w=w+i*i;
    if(w>g)break;
}
textBox3->Text=i.ToString();

w=0;
for(i=1;i<max;i++){
    w=w+i*i*i;
    if(w>g)break;
}
textBox4->Text=i.ToString();

w=0;
for(i=1;i<max;i++){
    w=w+i*i*i*i;
    if(w>g)break;
}
textBox5->Text=i.ToString();

w=0;
for(i=1;i<max;i++){
    w=w+i*i*i*i*i;
    if(w>g)break;
}
textBox6->Text=i.ToString();


プログラム解説
if(w>g)break;は強制的にfor文を止めさせるときに使います。
gは限界値ですから、
総和wが限界値を超えたならfor文を強制的に終了させ、
その終了時点のiを各TextBoxに表示させているのです。

ビルドして限界値に10000を入れて計算を実行させてみると
となります。
すなわち、自然数を例にとれば
1+2+3+・・・+141の時点ではじめて10000を越えるというわけです。
それに対して、5乗の和は
の時点で10000をオーバーしてしまいます。




第4話へ 第6話へ


初心者のためのjava 入門 基礎から応用まで
初心者のための VC++による C言語 入門 C++ 入門 基礎から応用まで第1部
初心者のための VC++による C言語 入門 C++ 入門 基礎から応用まで第2部
初心者のための VC++による C言語 入門 C++ 入門 基礎から応用まで第3部

vb講義へ
VB講義基礎へ
初心者のための世界で一番わかりやすい vb 入門 vba 入門 基礎から応用まで 第1部
初心者のための世界で一番わかりやすいVisual Basic入門基礎講座へ
初心者のための世界で一番わかりやすいVisual C++入門基礎講座へ