CL内で割り算(余りまで求める)をしたいのですが、RPGで言う“DIV”、“MVR”の様な命令は存在するのでしょうか?存在しない場合はどの様に求めれば良いかご教授願います。
CLP では DIV は / ですが MVR に相当するものはありません。下記に割り算と余りを計算するCLPを示します。ソースは http://218.44.135.18/QSYS,LIB/PGMRLIB.LIB/QCLSRC.FILE/DIVCL.MBR0001.00 PGM 0002.00 DCL VAR(&SU_A) TYPE(*DEC) LEN(4 0) 0003.00 DCL VAR(&SU_B) TYPE(*DEC) LEN(4 0) 0004.00 DCL VAR(&SHO) TYPE(*DEC) LEN(4 0) 0005.00 DCL VAR(&AMARI) TYPE(*DEC) LEN(4 0) 0006.00 DCL VAR(&CHAR4) TYPE(*CHAR) LEN(4) 0007.00 0008.00 /*( 10/2 の割り算 )*/ 0009.00 CHGVAR &SU_A 10 0010.00 CHGVAR &SU_B 2 0011.00 CHGVAR VAR(&SHO) VALUE(&SU_A / &SU_B) 0012.00 CHGVAR VAR(&CHAR4) VALUE(&SHO) 0013.00 SNDPGMMSG MSG('10 / 2 = ' *CAT &CHAR4) MSGTYPE(*DIAG)0014.00 0015.00 /*( 8/3 の割り算の余り )*/ 0016.00 CHGVAR &SU_A 8 0017.00 CHGVAR &SU_B 3 0018.00 CHGVAR VAR(&SHO) VALUE(&SU_A / &SU_B) 0019.00 CHGVAR &AMARI VALUE(&SU_A - (&SU_B * &SHO)) 0020.00 CHGVAR VAR(&CHAR4) VALUE(&AMARI) 0021.00 SNDPGMMSG MSG('8 % 3 = ' *CAT &CHAR4) MSGTYPE(*DIAG)0022.00 ENDPGM
ご回答どうも有り難う御座いました。なるほど、納得しました。参照ソースはエラーで開けませんでしたが、記述して頂いたソースをサンプルにコーディングしてみます。助かりました。