100 !' ************************************************** 110 !' * * 120 !' * 最大・最小イメージ化 プログラム * 130 !' * * 140 !' * "J1p090RS4.BAS" * 150 !' * 数T/024(実教)練習4(p90) * 160 !' * * 170 !' * 2008/11/1/Sat. by YO * 180 !' * * 190 !' ************************************************** 200 !' 定数・配列の定義 210 LET cx$="Red" 220 LET cy$="Green" 230 LET dc$="-k" 490 !' 500 !' 関数の定義 510 DECLARE EXTERNAL FUNCTION f 590 !' 600 !' 外部副プログラムの定義 610 DECLARE EXTERNAL SUB draw_function 620 !'DECLARE EXTERNAL SUB draw_xy 630 !'DECLARE EXTERNAL SUB erase_xy 640 DECLARE EXTERNAL SUB plot_text 790 !' 800 !' 変数の定義 810 LET xs=-2 820 LET xe=2 830 LET xb=1 840 LET xz=0.1 850 LET m=-1 860 LET wxs=-5 870 LET wxe=5 880 LET wys=-7 890 LET wye=5 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 SET LINE STYLE 1 1070 SET LINE COLOR "Black" 1080 CALL draw_function(wxs,wxe,0.1,m) 1090 PLOT TEXT ,AT -0.3,-m-.2 : dc$ 1990 !' 2000 REM キー操作 2010 LET mo=m 2100 !' 2180 !' 2200 LET k=0 2210 IF getkeyState(13)<0 THEN 2220 LET k=13 2230 END IF 2240 IF getkeyState(38)<0 THEN 2250 LET k=38 2260 END IF 2270 IF getkeyState(40)<0 THEN 2280 LET k=40 2290 END IF 2460 IF k=0 THEN 2470 GOTO 2200 2480 END IF 2490 !' 2500 !' 移動の処理 2600 IF k=13 THEN 2610 GOTO 9980 2620 END IF 2630 IF K=40 THEN 2640 LET m=m-xz 2650 END IF 2660 IF K=38 THEN 2670 LET m=m+xz 2680 END IF 3000 !' 移動の処理 3010 SET LINE width 3 3020 SET LINE COLOR "White" 3030 CALL draw_function(wxs,wxe,0.1,mo) 3040 SET TEXT COLOR "White" 3050 PLOT TEXT ,AT -0.3,-mo-.2 : dc$ 3060 SET LINE COLOR "Black" 3070 SET TEXT COLOR "Black" 3080 DRAW Grid 3090 SET LINE width 1 3200 CALL draw_function(wxs,wxe,0.1,m) 3210 PLOT TEXT ,AT -0.3,-m-.2 : dc$ 3990 !' 9000 !' キーバッファ消去 9010 IF getkeyState(38)<0 THEN 9020 GOTO 9010 9030 END IF 9040 IF getkeyState(40)<0 THEN 9050 GOTO 9040 9060 END IF 9880 GOTO 2000 9890 !' 9980 !' 9990 END 10000 !' 関数の定義 10010 EXTERNAL FUNCTION f(x,m) 10020 LET f=-x*(x-1)-m 10030 END FUNCTION 10040 !' 10200 !' 関数表示ルーチン 10210 EXTERNAL SUB draw_function(a,b,s,m) 10220 FOR xx=a TO b STEP s 10230 PLOT LINES: xx,f(xx,m); 10240 NEXT xx 10250 END SUB 10260 !' 10800 !' 文字表示ルーチン 10810 EXTERNAL SUB plot_text(x) 10820 IF f(x,m)>=0 THEN 10830 PLOT TEXT,AT x-0.05,-0.2:"x" 10840 ELSE 10850 PLOT TEXT,AT x-0.05,0.05:"x" 10860 END IF 10870 PLOT TEXT,AT -0.4,f(x,m)-0.1:"f(x)" 10880 END SUB 10890 !'