For文を利用した簡単な計算の例題

・1+2+3+... をコンピュータで馬鹿正直に計算させてみよう。

さて、For文の簡単な文法を理解したところ、簡単な計算をさせてみよう。

ちょっと数学になってしまい申し訳ないが、次のような計算を見たことがあるだろう。

「1+2+3+4+5+6+7+8+9+10」

そろばんが得意な人は、すぐに答えが出るかとおもう。また数学の得意な人は、公式も覚えているだろう。。。

ここでは、コンピュータがいかに早く計算してくれるのかを知るために、またFor文の練習として、上記のような計算をコンピュータにさせてみよう。

作っていただきたいプログラムは次の通り。

計算の結果は変数sに代入し、Label1に表示させることとする。

計算する内容は、「1+2+3+...+99+100」である。

但し、s = 1+2+3+4+5+6+7+8+9+10+... と全てを書いてはいけないとする。
また公式を利用してはいけないものとし、コンピュータが逐一計算をしてくれるようにプログラムするものとする。

またヒントとして、For-Next文を使うこととする。

更に、(((((((0+1) +2)...として考えるとよいかもしれない。

また、x = x + y がどのような働きをするのかきちんと理解している必要もある。

ちょっと難しいがわかってしまえば、なぁんだってことになるので、ちょっとがんばって考えてみよう。

いかに簡単な計算を繰り返せば答えが出るようになるのかを考えるとよいのだが。。。

なお、その都度合計を例えばLabel1に表示させるようにすると、カウンタのように次々と数値が変わってくれるはずである。
が、これにはちょっとしたテクニックが必要となる。実際には次のようにプログラムするとよい。

Label1.Text = s
Label1.Refresh()

つまり、Label1にsを表示したすぐ後で、Label1をリフレッシュさせてあげるというものである。

さて、プログラムできたら実行してみよう。公式も使わず順次100回計算させたとしても、コンピュータはあっというまに答えを出してくれるぞ!
折角だから、1から10万までを足させてみよう。これでもほんのわずかな時間で計算してくれる。

あまりにも多くの計算をさせると、しばらく帰ってこないので注意!VBの場合は、「コントロールキー」を押しながら「Breakキー」を押すと強制終了できる。が、効きがちょっと遅いようですので、しばらく待とう。

ずーーーと計算をさせるようなプログラムを書くことも簡単。間違ってこのようにしてしまうと、最大のバグで、いわゆる「飛んでしまった」状態になる。
#コンピュータは一生懸命計算しているにも関わらず。。。


[「C班」プログラミング基礎のTopに戻る]