ルートの近似値を計算します。戻り値は整数です。
イベント命令の記述例と、相互変換モジュールを用いて貼り付けるためのコードを併記しています。実際に入力する際は、相互変換モジュールを用いてスイッチ・変数番号を任意の番号に書き換えて変換すると効率的です。
ニュートン法を用いた正の平方根の計算です。正の整数を『V[0001]:元の数』に入れて実行すると、その正の平方根の値が『V[0003]:結果』に返ります。例えば√95183を求めるには、元の数に95183を入れて実行すれば、結果に308が返ります(真値は308.517……)。
相互変換モジュール用コード | イベント命令記述例 |
---|---|
#include "rpgfunc.as" /* スイッチ・変数番号を入力 */ s1 = 1 // スイッチ1:前々回結果 v1 = 1 // 変数1:引数 v2 = 2 // 変数2:一時変数 v3 = 3 // 変数3:結果 v4 = 4 // 変数4:前々回結果 /* 以下、イベント命令の構文 */ swi s1, , 0 varsel v2 : var 0, 1, v1, 0 varsel v4 : var 0, 0, 0, 0 label 1 varsel v3 : var 0, 1, v1, 0 varsel v3 : var 4, 1, v2, 0 varsel v3 : var 1, 1, v2, 0 varsel v3 : var 4, 0, 2, 0 co 1, v3, 1, v4, 5 swi s1, , -1 co 0, s1, 1, 0, 0 varsel v4 : var 0, 1, v3, 0 coend varsel v2 : var 0, 1, v3, 0 golabel 1 coend varsel v3 : var 1, 1, v2, 0 varsel v3 : var 4, 0, 2, 0 send |
使用スイッチ
|
◆スイッチの操作:[0001:前々回結果]をOFFにする ◆変数の操作:[0002:一時変数]代入,変数[0001]の値 ◆変数の操作:[0004:前々回結果]代入,0 ◆ラベルの設定:1番 ◆変数の操作:[0003:結果]代入,変数[0001]の値 ◆変数の操作:[0003:結果]除算,変数[0002]の値 ◆変数の操作:[0003:結果]加算,変数[0002]の値 ◆変数の操作:[0003:結果]除算,2 ◆条件分岐:変数[0003:結果]がV[0004]以外 ◆スイッチの操作:[0001:前々回結果]のON/OFFを逆転 ◆条件分岐:スイッチ[0001:前々回結果]がON ◆変数の操作:[0004:前々回結果]代入,変数[0003]の値 ◆ :分岐終了 ◆変数の操作:[0002:一時変数]代入,変数[0003]の値 ◆指定ラベルへ飛ぶ:1番 ◆ :分岐終了 ◆変数の操作:[0003:結果]加算,変数[0002]の値 ◆変数の操作:[0003:結果]除算,2 ◆ |