100 !' ************************************************** 110 !' * * 120 !' * 最大・最小イメージ化 プログラム * 130 !' * * 140 !' * "K1p091Kenkyu_R2.bas" * 150 !' * 数T/027(啓林館)研究 例2(p91) * 160 !' * * 170 !' * 2009/3/13/Fri. by YO * 180 !' * * 190 !' ************************************************** 200 !' 定数・配列の定義 210 LET cx$="Red" 220 LET cy$="Blue" 490 !' 500 !' 関数の定義 510 DECLARE EXTERNAL FUNCTION f 590 !' 600 !' 外部副プログラムの定義 610 DECLARE EXTERNAL SUB draw_function 640 DECLARE EXTERNAL SUB plot_text 790 !' 800 !' 変数の定義 810 LET xs=0 820 LET xe=2 830 LET xb=1 840 LET xz=0.02 850 LET a=1.2 860 LET wxs=-4 870 LET wxe=6 880 LET wys=-4 890 LET wye=6 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 :xs,0;xe,0 1110 SET LINE width 1 1120 SET LINE STYLE 1 1130 SET LINE COLOR "Black" 1140 CALL draw_function(wxs,wxe,0.1,a) 1150 CALL plot_text(a) 1160 SET LINE STYLE 3 1170 PLOT LINES :a,0;a,f(a,a) 1180 SET LINE STYLE 1 1190 !' 1990 !' 2000 REM キー操作 2010 LET ao=a 2100 !' 2180 !' 2200 LET k=0 2210 IF getkeyState(13)<0 THEN 2220 LET k=13 2230 END IF 2240 IF getkeyState(37)<0 THEN 2250 LET k=37 2260 END IF 2270 IF getkeyState(39)<0 THEN 2280 LET k=39 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=37 THEN 2640 LET a=a-xz 2650 END IF 2660 IF K=39 THEN 2670 LET a=a+xz 2680 END IF 3000 !' 移動の処理 3010 SET LINE width 3 3020 SET LINE COLOR "White" 3030 CALL draw_function(wxs,wxe,0.1,ao) 3040 SET TEXT COLOR "White" 3050 CALL plot_text(ao) 3060 !' 3100 !' 3110 PLOT LINES :ao,0;ao,f(ao,ao) 3120 SET LINE COLOR "Black" 3130 SET TEXT COLOR "Black" 3140 DRAW Grid 3150 SET LINE STYLE 3 3160 SET LINE COLOR "Yellow" 3170 PLOT LINES :xs,wys;xs,wye 3180 PLOT LINES :xe,wys;xe,wye 3190 SET LINE COLOR "Red" 3200 PLOT LINES :xs,0;xe,0 3210 SET LINE width 1 3220 SET LINE STYLE 1 3230 SET LINE COLOR "Black" 3240 CALL draw_function(wxs,wxe,0.1,a) 3250 CALL plot_text(a) 3260 SET LINE STYLE 3 3270 PLOT LINES :a,0;a,f(a,a) 3280 SET LINE STYLE 1 3990 !' 9000 !' キーバッファ消去 9010 IF getkeyState(37)<0 THEN 9020 GOTO 9010 9030 END IF 9040 IF getkeyState(39)<0 THEN 9050 GOTO 9040 9060 END IF 9880 GOTO 2000 9890 !' 9980 !' 9990 END 10000 !' 関数の定義 10010 EXTERNAL FUNCTION f(x,a) 10020 LET f=x*(x-2*a) 10030 END FUNCTION 10040 !' 10200 !' 関数表示ルーチン 10210 EXTERNAL SUB draw_function(p,q,s,a) 10220 FOR xx=p TO q STEP s 10230 PLOT LINES: xx,f(xx,a); 10240 NEXT xx 10250 END SUB 10260 !' 10800 !' 文字表示ルーチン 10810 EXTERNAL SUB plot_text(a) 10820 IF f(a,a)>=0 THEN 10830 PLOT TEXT ,AT a-0.03,-0.25 : "a" 10840 ELSE 10850 PLOT TEXT ,AT a-0.03,0.03 : "a" 10860 END IF 10870 END SUB 10880 !'