100 !' ************************************************** 110 !' * * 120 !' * 最大・最小イメージ化 プログラム * 130 !' * * 140 !' * "K1p089TO24.BAS" * 150 !' * 数T/027(啓林館)問24(p89) * 160 !' * * 170 !' * 2009/3/13/Fri. by YO * 180 !' * * 190 !' ************************************************** 200 !' 定数・配列の定義 210 LET cx$="Red" 220 LET cy$="Blue" 230 LET dc$="c" 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 c=6 860 LET wxs=-9 870 LET wxe=11 880 LET wys=-5 890 LET wye=27 900 LET ym=7 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 STYLE 3 1060 SET LINE COLOR "Yellow" 1070 PLOT LINES :xs,wys;xs,wye 1080 PLOT LINES :xe,wys;xe,wye 1090 SET LINE COLOR "Red" 1100 PLOT LINES :wxs,ym;wxe,ym 1110 PLOT LINES :xs,0;xe,0 1120 SET LINE width 1 1130 SET LINE STYLE 1 1140 SET LINE COLOR "Black" 1150 CALL draw_function(wxs,wxe,0.1,c) 1160 PLOT TEXT ,AT -0.4,c : dc$ 1990 !' 2000 REM キー操作 2010 LET co=c 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 c=c-xz 2650 END IF 2660 IF K=38 THEN 2670 LET c=c+xz 2680 END IF 3000 !' 移動の処理 3010 SET LINE width 3 3020 SET LINE COLOR "White" 3030 CALL draw_function(wxs,wxe,0.1,co) 3040 SET TEXT COLOR "White" 3050 PLOT TEXT ,AT -0.4,co : dc$ 3060 SET LINE COLOR "Black" 3070 SET TEXT COLOR "Black" 3080 DRAW Grid 3090 !' 3100 SET LINE STYLE 3 3110 SET LINE COLOR "Yellow" 3120 PLOT LINES :xs,wys;xs,wye 3130 PLOT LINES :xe,wys;xe,wye 3140 SET LINE COLOR "Red" 3150 PLOT LINES :wxs,ym;wxe,ym 3160 PLOT LINES :xs,0;xe,0 3170 SET LINE width 1 3180 SET LINE STYLE 1 3190 SET LINE COLOR "Black" 3200 CALL draw_function(wxs,wxe,0.1,c) 3210 PLOT TEXT ,AT -0.4,c : 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,c) 10020 LET f=2*x*(2-x)+c 10030 END FUNCTION 10040 !' 10200 !' 関数表示ルーチン 10210 EXTERNAL SUB draw_function(a,b,s,c) 10220 FOR xx=a TO b STEP s 10230 PLOT LINES: xx,f(xx,c); 10240 NEXT xx 10250 END SUB 10260 !' 10800 !' 文字表示ルーチン 10810 EXTERNAL SUB plot_text(x) 10820 IF f(x,c)>=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 IF x>=0 THEN 10880 PLOT TEXT,AT -0.4,f(x,c)-0.1:"f(x)" 10890 ELSE 10900 PLOT TEXT,AT 0.1,f(x,c)-0.1:"f(x)" 10910 END IF 10920 END SUB 10930 !'