他のBASIC処理系からUBASICへ移植するには
FOR NEXT での STEP には整数のみ
愛知教育大学 数学教室 飯島康之
松下さんからの質問
次のプログラムが動かないのだが,どうしてだろうという質問をいただきました。
10 screen 3
20 W=8:H=5
30 WINDOW (-W,-H)-(W,H)
40 LINE (-W,0)-(W,0)
50 LINE (0,-H)-(0,H)
60 PI=3.14159
70 FOR X=-2*PI TO 2*PI STEP .01
80 Y=2*SIN(X)
90 PSET(X,Y)
100 NEXT X
110 END
screen 命令がこのままでいいのかどうか,ちょっと心配ではありますが,すぐに気づいたのは,FOR NEXT の STEP が 0.01 となっていることです。
他のBASIC系ではこれは構わないのですが, UBASICではエラーになります。
STEP を「1」にするように,元のプログラムをなるべくそのまま残すと,次のようになります。
10 screen 3
20 W=8:H=5
30 window (-W,-H)-(W,H)
40 line (-W,0)-(W,0)
50 line (0,-H)-(0,H)
60 PI100=314
70 for X1=-2*PI100 to 2*PI100
75 X=X1/100
80 Y=2*sin(X)
90 pset (X,Y)
100 next X1
110 end
PI100なんていうのはちょっと不自然なので,次のようにPIを使う手もあります。
10 screen 3
20 W=8:H=5
30 window (-W,-H)-(W,H)
40 line (-W,0)-(W,0)
50 line (0,-H)-(0,H)
60 PI=3.14
70 for X1=-200 to 200
75 X=PI*X1/100
80 Y=2*sin(X)
90 pset (X,Y)
100 next X1
110 end