3つの数の和を計算する


これまでは2つの数 a, b が与えられた時に a+b を計算するプログラムを作っていましたが,今度は3つの数が与えられた時,その和を求めるプログラムを作ってみましょう。プログラムは次のようになります。

サンプルプログラム5

プログラムを解説します。

こうして,プログラムの解説を読んだだけでは,良く分からないかもしれませんが,とりあえず 「実行(R)」から「開始(G)」実行してみてください。そうすると,実行画面が次のようになり

足す数を聞いてきます。1 と入力して,Enter キーを打ってください。すると行番号 40 で a に数 1 が代入されました。次に行番号 50 で sum = sum + a が実行されます。命令を実行する前の,sum の値は 0 で,a の値は 1 なので,命令を実行した後の sum の値は 1 になります。次に行番号 60 に行き,i = i+1 を実行します。命令を実行する前の i の値は 1 ですから,命令を実行した後の i の値は 2 になります。次に行番号 70 へ行き,i の値 2 は,n の値 3 以下なので,行番号 40 へ行きます。行番号 40 では,また a の値を聞いてくるので,実行画面は次のようになります。

ここで,今度は 2 を入力して Enter キーを打ってください。そうすると行番号 40 で a に数 2 が代入されました。次に行番号 50 で sum = sum + a が実行されます。命令を実行する前の,sum の値は 1 で,a の値は 2 なので,命令を実行した後の sum の値は 3 になります。次に行番号 60 に行き,i = i+1 を実行します。命令を実行する前の i の値は 2 ですから,命令を実行した後の i の値は 3 になります。次に行番号 70 へ行き,i の値 3 は,n の値 3 以下なので,行番号 40 へ行きます。行番号 40 では,また a の値を聞いてくるので,実行画面は次のようになります。

ここで,今度は 3 を入力して Enter キーを打ってください。そうすると行番号 40 で a に数 3 が代入されました。次に行番号 50 で sum = sum + a が実行されます。命令を実行する前の,sum の値は 3 で,a の値は 3 なので,命令を実行した後の sum の値は 6 になります。次に行番号 60 に行き,i = i+1 を実行します。命令を実行する前の i の値は 3 ですから,命令を実行した後の i の値は 4 になります。次に行番号 70 へ行き,i の値 4 は,n の値 3 以下ではないので,then の次の goto 命令は実行されません。よって行番号 70 はそのまま通過し,行番号 80 へ行きます。行番号 80 では,sum の値を表示するので,実行画面は次のようになります。

実行結果からわかるように,入力した3つの数の和 1+2+3=6 が,合計として表示されました。このプログラムはちょっと複雑なので分かり難いかもしれません。次に,プログラムの実行過程を表の形で示します。上のプログラムは表の上の行から下の行へと実行されます。表の各列は次の物を意味しています。

ただし,?はまだ値の入力されていない変数を意味しています。

参照番号 行番号 a sum i n
1 10 ? ? ? 3
2 20 ? 0 ? 3
3 30 ? 0 1 3
4 40 1 0 1 3
5 50 1 1 1 3
6 60 1 1 2 3
7 70 1 1 2 3
8 40 2 1 2 3
9 50 2 3 2 3
10 60 2 3 3 3
11 70 2 3 3 3
12 40 3 3 3 3
13 50 3 6 3 3
14 60 3 6 4 3
15 70 3 6 4 3
16 80 3 6 4 3

上の表は,次のようにしてみます。

始めは分かり難いかも知れませんが,慣れればわかってくるはずです。慣れるまではプログラムを上の表に従って,プログラムを一行ごとに追ってみてください。