100 !' ************************************************** 110 !' * * 120 !' * 2次関数のグラフと直線の関係 プログラム * 130 !' * * 140 !' * "S1p091RS2.bas" * 150 !' * 数T/030(数研)練習2(p91) * 160 !' * * 170 !' * 2008/10/12/Sun. by YO * 180 !' * * 190 !' ************************************************** 200 !' 定数・配列の定義 210 LET cx$="Red" 220 LET cy$="Yellow" 230 DIM bn$(5) 290 !' 400 LET bn$(1)="<<" 410 LET bn$(2)="<-" 420 LET bn$(3)="k" 430 LET bn$(4)="+<" 440 LET bn$(5)="<<" 490 !' 500 !' 関数の定義 510 DECLARE EXTERNAL FUNCTION f 520 DECLARE EXTERNAL FUNCTION g 590 !' 600 !' 外部副プログラムの定義 610 DECLARE EXTERNAL SUB draw_function 790 !' 800 !' 変数の定義 810 LET a=-1 850 !' 860 LET wxs=-5 870 LET wxe=7 880 LET wys=-4 890 LET wye=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,a) 1070 PLOT TEXT ,AT -0.4,a+0.05 : "k" 1080 !' 1090 !' 2000 LOCATE CHOICE(bn$):k 2010 IF k=3 THEN 2020 GOTO 9980 2030 END IF 2040 IF k=1 THEN 2050 LET a=a-0.1 2060 GOTO 2900 2070 END IF 2080 IF k=2 THEN 2090 LET a=a-0.02 2100 GOTO 2900 2110 END IF 2120 IF k=4 THEN 2130 LET a=a+0.02 2140 GOTO 2900 2150 END IF 2160 IF k=5 THEN 2170 LET a=a+0.1 2180 END IF 2190 !' 2900 !' 2910 CLEAR 2980 GOTO 1020 2990 !' 9980 !' 9990 END 10000 !' 関数の定義 10010 EXTERNAL FUNCTION f(x) 10020 LET f=x*(x-3)+2 10030 END FUNCTION 10040 !' 10050 EXTERNAL FUNCTION g(x,a) 10060 LET g=x+a 10070 END FUNCTION 10080 !' 10200 !' 関数表示ルーチン 10210 EXTERNAL SUB draw_function(p,q,s,a) 10220 FOR xx=p TO q STEP s 10230 PLOT LINES: xx,f(xx); 10240 NEXT xx 10250 PLOT LINES: q,f(q) 10260 SET LINE COLOR "Blue" 10270 FOR xx=p TO q STEP s 10280 PLOT LINES: xx,g(xx,a); 10290 NEXT xx 10300 SET LINE COLOR "Black" 10310 END SUB 10320 !'