100 !' ************************************************** 110 !' * * 120 !' * 正弦・余弦導入指導用 プログラム * 130 !' * * 140 !' * "J1p114Cos.bas" * 150 !' * 数T/024(実教)余弦の指導(p114〜) * 160 !' * * 170 !' * 2008/11/17/Mon. by YO * 180 !' * * 190 !' ************************************************** 200 !' 定数・配列の定義 210 LET cx$="Red" 220 LET cy$="Yellow" 230 DIM bn$(6) 290 !' 400 LET bn$(1)="<<" 410 LET bn$(2)="<-" 420 LET bn$(3)="θ" 430 LET bn$(4)="+<" 440 LET bn$(5)="<<" 450 LET bn$(6)="Auto" 490 !' 500 !' 関数の定義 510 DECLARE EXTERNAL FUNCTION f 590 !' 600 !' 外部副プログラムの定義 610 DECLARE EXTERNAL SUB draw_function 620 DECLARE EXTERNAL SUB draw_circle 790 !' 800 !' 変数の定義 810 LET xs=1 820 LET xe=4 830 LET xb=3 840 LET xz=0.02 850 LET s=0 860 LET wxs=-2 870 LET wxe=2 880 LET wys=-2 890 LET wye=2 990 !' 1000 REM 主プログラム開始 1010 SET WINDOW wxs,wxe,wys,wye 1020 CALL draw_circle(s,"Black","Blue","Red") 1980 LET SO=S 1990 !' 2000 !' キー処理 2010 LOCATE CHOICE(bn$):k 2020 IF k=1 THEN 2030 LET s=s-PI/10 2040 GOTO 2200 2050 END IF 2060 IF k=2 THEN 2070 LET s=s-PI/100 2080 GOTO 2200 2090 END IF 2100 IF k=3 THEN 2110 GOTO 9980 2120 END IF 2130 IF k=4 THEN 2140 LET s=s+PI/100 2150 GOTO 2200 2160 END IF 2170 IF k=5 THEN 2180 LET s=s+PI/10 2190 END IF 2200 IF k=6 THEN 2210 GOTO 3000 2220 END IF 2230 !' 2240 CALL draw_circle(so,"White","White","White") 2800 !' 2960 GOTO 1020 2990 !' 3000 !' 3010 CLEAR 3020 FOR SS=s TO s+PI*2 STEP PI/100 3030 CALL draw_circle(ss,"Black","Blue","Red") 3040 SET LINE COLOR "Red" 3050 LET px=COS(ss) 3060 IF px<>0 THEN 3070 FOR ppx=0 TO px STEP px/1000 3080 PLOT LINES: 0,0;ppx,0 3090 NEXT ppx 3100 END IF 3110 CALL draw_circle(ss,"White","White","White") 3120 NEXT ss 3990 GOTO 1020 9980 !' 9990 END 10000 !' 関数の定義 10010 EXTERNAL FUNCTION f(x,a) 10020 LET f=ABS(x+a) 10030 END FUNCTION 10040 !' 10200 !' 関数表示ルーチン 10210 EXTERNAL SUB draw_function(p,q,s,a,b,c) 10220 FOR xx=p TO q STEP s 10230 PLOT LINES: xx,f(xx,a); 10240 NEXT xx 10250 PLOT LINES: xx,f(xx,a) 10260 SET LINE COLOR "Blue" 10270 FOR xx=p TO q STEP s 10280 PLOT LINES: xx,b*xx+c; 10290 NEXT xx 10300 SET LINE COLOR "Black" 10310 END SUB 10320 !' 19000 !' 単位円表示 19010 EXTERNAL SUB draw_circle(s,c1$,c2$,c3$) 19020 SET POINT STYLE 3 19030 SET LINE width 3 19040 DRAW Grid 19050 SET LINE width 1 19060 SET LINE COLOR c1$ 19070 DRAW circle 19080 SET LINE width 2 19090 SET LINE COLOR c2$ 19100 LET px=COS(s) 19110 LET py=SIN(s) 19120 PLOT LINES: 0,0;px,py 19130 SET AREA COLOR c2$ 19140 DRAW disk WITH SCALE(0.015)*SHIFT(px,py) 19150 SET LINE width 1 19160 SET LINE STYLE 3 19170 PLOT LINES: px,0;px,py 19180 PLOT LINES: 0,py;px,py 19190 SET LINE width 5 19200 SET LINE STYLE 1 19210 SET LINE COLOR c3$ 19220 PLOT LINES: 0,0;px,0 19230 END SUB 19240 !'