他の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

修正案1

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

修正案2

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