てくの電卓
Home > EZアプリ(BREW(R)) 戻る<<   1 2 3 4 5 6

プログラムのコーディング方法(6) --ループ処理 2--

FOR ( ) を使ったループ処理の方法を解説します。
FOR ( ) の記述方法は少し特殊です。
FOR ( ) のカッコ内に使われる数字はメモリの番号です。
そして、メモリにセットされている数値が実際のループ処理に使用されます。
つまり、FOR ( 0,1 ) の場合は、
0 番のメモリにセットされた数値から 1 番のメモリにセットされた数値までの間、
0 番のメモリの数値をインクリメント(増分)し、NEXT までの処理を繰り返す

という意味になります。
以下の例は、1 から 10 までの整数について、偶数の和と奇数の和をそれぞれ求めるプログラムです。

0
STM [ 2 ]
STM [ 3 ]
1
STM [ 0 ]
10
STM [ 1 ]
FOR ( 0,1 )
M [ 0 ]
mod
2
IF ( X=0 )
M [ 0 ]
ADM [ 2 ]
ELSE
M [ 0 ]
ADM [ 3 ]
ENDIF
NEXT
M [ 2 ]
HALT
M [ 3 ]

まず、2 番と 3 番のメモリに 0 がセットされます。
0 番のメモリには 1 が、1 番のメモリには 10 がそれぞれセットされます。
FOR ( ) のカッコ内は 0,1 となっていますので、
0 番のメモリと 1 番のメモリまで、つまり 1 と 10 を使って処理を繰り返します。
mod は剰余 (x/yの余り) を表すので、M [ 0 ] / 2 の余りが計算されます。
計算結果は IF ( X=0 ) による条件判断にかけられます。
余りが 0 (つまり偶数) の場合は 0 番のメモリの数値を 2 番のメモリの数値に加算します。
それ以外 (つまり奇数) の場合は 0 番のメモリの数値を 3 番のメモリの数値に加算します。
0 番のメモリの数値が 1 番のメモリの数値 10 を超えるまで、この処理を繰り返し行います。
結果、2 番のメモリの数値 30 (= 2 + 4 + 6 + 8 + 10) と
3 番のメモリの数値 25 (= 1 + 3 + 5 + 7 + 9) が表示されます。
ちなみに 0 番のメモリの値は 11 になります。

戻る<<   1 2 3 4 5 6
Izumi Cyber Networks Inc.