第4講 for文を理解しよう
第5話 上限の定められた和の計算

課題 次のプログラムをfor文を使い組んでください。
① コンソール画面に
入門となるようにしてください。
の解答例
void f1(){
   int i;
   string a;
   a="C言語の学習は楽しい。";
   for(i=0;i<10;i++){
     cout<<a<<endl;
   }
}
② 8+13+18+23+・・・の計算を合計が1000を超えない範囲で実行してその答えを出してください。
の解答例
void f1(){
   int a,i;
   a=0;
   for(i=8;a<955-i;i=i+5){
     a=a+i;
   }
   cout<<"上限を定められた和の計算結果:"<<a<<endl;
}
解説
きっと皆さんの頭の中には?が浮かんでいませんか。
でも
void f1(){
   int a,i;
   a=0;
   for(i=8;a<1000;i=i+5){
     a=a+i;
   }
   cout<<"上限を定められた和の計算結果:"<<a<<endl;
}
としたのでは、実行結果はCで1000を超えてしまいます。
実は、このようにした場合
8+13+18+23+・・・+93+98
を計算させています。
8+13+18+23+・・・+93の段階では、a=909なので、a<1000の条件を満たし、
もう一度for文が実行されてしまいますが、最後が98なので合計は1007と1000を超えてしまいます。
ですから、条件はa<1000-(i+5)すなわちa<955-iでなければなりません。
つまり、一つ手前で止めなければなりません。
一つ手前はi=93ですからi+5は98ですよね。

でも、この解説を聞いても今一歩わからないという方が多いのではないでしょうか。
実は、次の講で学ぶif文を使うともっとすっきりしたものにすることができます。


さて、ここでも課題を出して話を閉じます。
かなり難しい課題ですよ。
1+(1+2)+(1+2+3)+(1+2+3+4)+・・・+(1+2+3+・・・+100)
ヒントは、for文を入れ子式に2回使うことです。

第4話へ 第6話へ


戻る


VB講義へ
VB講義基礎へ

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