陰関数の描画
100 screen 1
110 cls 3
120 print "陰関数 f(x,y)=0 の概形を調べます"
130 print "式 f(x,y) を入力してください(例:X^2+Y^2-10)"
140 strinput F$
150 F$=encode(F$)
160 MaxOfX=15
170 Dwidth=5
180 cls 3
190 if Dwidth<1 then Dwidth=1
200 MaxOfY=MaxOfX*400/640
210 Dp=MaxOfX/320
220 window (-MaxOfX,MaxOfY)-(MaxOfX,-MaxOfY)
230 line (-MaxOfX,0)-(MaxOfX,0),7
240 for I=-int(MaxOfX) to int(MaxOfX)
250 line (I,10*Dp)-(I,-10*Dp),7
260 next
270 line (0,-MaxOfY)-(0,MaxOfY),7
280 for I=-int(MaxOfY) to int(MaxOfY)
290 line (10*Dp,I)-(-10*Dp,I),7
300 next
310 for X1=-int(MaxOfX/Dp) to int(MaxOfX/Dp) step Dwidth
320 for Y1=-int(MaxOfY/Dp) to int(MaxOfY/Dp) step Dwidth
330 X=X1*Dp
340 Y=Y1*Dp
350 '***************************************
360 Z=val(F$)
370 if Z>0 then pset (X,Y),1 else pset (X,Y),4
380 Y=Y+Dp*Dwidth:UpperZ=val(F$)
390 X=X-Dp*Dwidth:Y=Y1*Dp:LeftZ=val(F$)
400 if Z*UpperZ<=0 or Z*LeftZ<=0 then pset (X,Y),7
410 '***************************************
420 next
430 next
440 locate 1,1
450 print "M:座標の大きさ変更, D:ドットの細かさ変更, Q: 終了"
460 A$=upper(input$(1))
470 if A$="Q" then end
480 if A$="M" then
490 :input "Max of x ( 0 -> end)";MaxOfX
500 :if MaxOfX<=0 then end else goto 180
510 :endif
520 if A$="D" then
530 :print "何ドットずつにしますか"
540 :input Dwidth
550 :Dwidth=int(Dwidth)
560 :goto 180
570 :endif
580 goto 440