てくの電卓
Home > EZアプリ(BREW(R)) サンプル1<<   1 2 3   >>サンプル3
サンプルプログラム 2

シンプソンの数値積分。Y=sin(X) : X=( 0 , PI )。正確な値は 2 である。
※入力値を 10 に設定した場合

行番号プログラム
001 P [ N= ]
002 HALT
003 STM [ 1 ]
004 RAD
005 0
006 STM [ 2 ]
007 PI
008 STM [ 3 ]
009 M [ 3 ]
010 -
011 M [ 2 ]
012 =
013 /
014 M [ 1 ]
015 =
016 STM [ 4 ]
017 0
018 STM [ 0 ]
019 STM [ 5 ]
行番号プログラム
020 FOR ( 0,1 )
021 M [ 0 ]
022 IF ( X=0 )
023 1
024 ELIF ( X=M [ 1 ] )
025 1
026 ELSE
027 mod
028 2
029 =
030 IF ( X=0 )
031 2
032 ELSE
033 4
034 ENDIF
035 ENDIF
036 STM [ 6 ]
037 M [ 2 ]
038 +
行番号プログラム
039 M [ 0 ]
040 *
041 M [ 4 ]
042 =
043 sin
044 *
045 M [ 6 ]
046 =
047 ADM [ 5 ]
048 NEXT
049 M [ 5 ]
050 *
051 M [ 4 ]
052 /
053 3
054 =
055 STM [ 7 ]
056 M [ 7 ]

行番号解説
001--003画面に N= と表示し、数値の入力を受け付け、1 番のメモリに値をセットします。
ここでは 10 を入力したとします
004RAD により、三角関数の角度の単位を ラジアン に設定します
005--0062 番のメモリに 0 をセットします
007--0083 番のメモリに PI (円周率の近似値 = 3.14159265359) をセットします
009--016M [ 3 ] - M [ 2 ] = / M [ 1 ] = STM [ 4 ] を実行します。
3.14159265359 / 10 = 0.314159265359 が 4 番のメモリにセットされます
017--0190 番と 5 番のメモリに 0 をセットします
020--048FOR でループ処理を行います。
0 番のメモリの数値 0 が 1 番のメモリの数値 10 を超えるまで、NEXT までの処理を繰り返し行います
021--035条件分岐を行います。
M [ 0 ] の値が 0 (X=0)の場合は X に 1 を代入します。
M [ 0 ] の値が 10(X=M(01))の場合も X に 1 を代入します。
どちらでもない場合は、027 -- 034 行目の処理を行います
027--034X mod 2 = を実行します。
mod は剰余(x/yの余り)を表示します。つまりここでは X / 2 の余りを計算します。
次に 030 行目の IF による条件分岐を行います。
X=0 の場合、つまり X が 2 で割り切れて余りが 0 の場合は X に 2 を代入します。
そうでない場合は、X に 4 を代入します
036X の値を 6 番のメモリにセットします
037--047M [ 2 ] + M [ 0 ] * M [ 4 ] = sin * M [ 6 ] = ADM [ 5 ] を実行します。
M [ 2 ] + M [ 0 ] * M [ 4 ] を計算し、その結果のサイン値と M [ 6 ] を掛けた数値を 5 番のメモリに 加算 します
049--056M [ 5 ] * M [ 4 ] / 3 = STM [ 7 ] を実行します。
19.0996389843… * 0.31415926535 / 3 = 2.00010951732 が 7 番のメモリにセットされます。
M [ 7 ] の値が呼び出され、画面には 2.00010951732 と表示されます
実行結果N= 10
2.00010951732

サンプル1<<   1 2 3   >>サンプル3
Izumi Cyber Networks Inc.