No.67-1 |
USING R が効かないのは何故ですか? |
回答者 入川 精二 |
1998年01月 192号 P.28 |
◆ No.67(1997年 12月号)の回答-01
4Gで次の <INP> プログラムを作って確認しました。
1 <INP>
2 DISP OPEN;
3 DISP [21,11] ";訂正しますか? [ ]";;
4 INPUT [38,11] V30 USING R;
5 IF V30=";Y"; THEN GOTO YY ELSE GOTO NN;
6 $YY: DISP [21,13] ";'Y'が押された";,WAIT10; STOP;
7 $NN: DISP [21,13] ";'N'が押された";,WAIT10;
8 STOP;
この場合、INPUT文は正常に動作していて、‘Y’‘N’以外は受け付けません。そして、必ず $YY か $NN へ進みます。
ですから、藤原さんの場合も問題は INPUT文の‘USING R’にあるのではなくて、その後の記述に何か問題あり と推定しました。そこでプログラムを追加して次のようなテストをしました。
1 <INP>
2 DISP OPEN;
3 DISP [21,11] ";訂正しますか? [ ]";;
4 INPUT [38,11] V30 USING R;
5 IF V30=";Y"; THEN GOTO YY ELSE GOTO NN;
6 $YY: DISP [21,13] ";'Y'が押された";,WAIT10; STOP;
7 $NN: DISP [21,13] ";'N'が押された";,WAIT10;
8 LET V29=";左";;
DISP [1,14] "CHK1",WAIT5;
9 LET X3=1; DISP [1,15] ";CHK2";,WAIT5;
10 PRT;9121415C; DISP [1,16] ";CHK4";,WAIT5;
11 G;FMT/1; DISP [1,17] ";CHK4";,WAIT5;
12 STOP;
9行目の‘CHK2’の表示までは順調に実行できますが、その直後に“ピッ”と鳴ります。‘PRT;9121415C;’に問題があります。プリンターのスイッチが入っていないと“ピッ”です。スイッチオンなら問題なく先に進みます。
一見 INPUT文に問題があるようですが、実は別なところに落し穴がある という例です。これを見つけるにはちょっと工夫が必要です。
The PIPSなら [SS]+[F2] または [Alt]+[F2] でステップオンモードになりますが、4Gでは上のように書くしかありません。問題のありそうなところの前後を1ステップずつ [RETURN] を押しながら、かつ注意深く観察しながら進めると、多くの場合問題点が明確になります。
私もしょっちゅうこんなことをやっています。
□
|
| |