100 !' ************************************************** 110 !' * * 120 !' * 2次関数の決定移動指導 プログラム * 130 !' * * 140 !' * "K1p096R15.bas" * 150 !' * 数T/027(啓林館)例15(p96) * 160 !' * * 170 !' * 2009/3/13/Mon. by YO * 180 !' * * 190 !' ************************************************** 200 !' 定数・配列の定義 210 LET cx$="Red" 220 LET cy$="Blue" 230 DIM bn$(5) 290 !' 400 LET bn$(1)="<<" 410 LET bn$(2)="<-" 420 LET bn$(3)="a" 430 LET bn$(4)="+<" 440 LET bn$(5)="<<" 490 !' 500 !' 関数の定義 510 DECLARE EXTERNAL FUNCTION f 590 !' 600 !' 外部副プログラムの定義 610 DECLARE EXTERNAL SUB draw_function 790 !' 800 !' 変数の定義 810 LET xs=1 820 LET xe=3 830 LET xb=3 840 LET xz=0.02 850 LET m=0.4 860 LET wxs=-4 870 LET wxe=8 880 LET wys=-2 890 LET wye=10 900 LET px=-1 910 LET py=8 990 !' 1000 REM 主プログラム開始 1010 SET WINDOW wxs,wxe,wys,wye 1020 SET POINT STYLE 3 1030 SET LINE width 3 1040 DRAW Grid 1050 SET LINE width 1 1060 CALL draw_function(wxs,wxe,0.1,m,xs,xe) 1070 DRAW disk WITH SCALE(0.03)*SHIFT(px,py) 1080 PLOT TEXT ,AT wxe-2,wys ,USING "a=###.###": m 1090 LET mo=m 1100 !' 2000 !' 2100 LOCATE CHOICE(bn$):k 2110 IF k=1 THEN 2120 LET m=m-1 2130 GOTO 2300 2140 END IF 2150 IF k=2 THEN 2160 LET m=m-xz 2170 GOTO 2300 2180 END IF 2190 IF k=3 THEN 2200 GOTO 9980 2210 END IF 2220 IF k=4 THEN 2230 LET m=m+xz 2240 GOTO 2300 2250 END IF 2260 IF k=5 THEN 2270 LET m=m+1 2280 END IF 2290 !' 2300 !' 2310 CLEAR 2980 GOTO 1020 2990 !' 9980 !' 9990 END 10000 !' 関数の定義 10010 EXTERNAL FUNCTION f(x,m,a,b) 10020 LET f=m*(x-a)*(x-b) 10030 END FUNCTION 10040 !' 10200 !' 関数表示ルーチン 10210 EXTERNAL SUB draw_function(a,b,s,m,xs,xe) 10220 FOR xx=a TO b STEP s 10230 PLOT LINES: xx,f(xx,m,xs,xe); 10240 NEXT xx 10250 PLOT LINES: b,f(b,m,xs,xe) 10260 END SUB 10270 !'