課題 2. SIN(X)グラフの描画

100 '**************************************************
110 '*******   正弦関数の計算描画 解答例   ******
120 '**************************************************
130 CONSOLE 0,24,1     '全行 scrole 、Fキー表示
140 CLS 3
150 CONSOLE 1,23,1     'scrole 開始行、行数、Fキー表示
160 '
170 INPUT "  計算間隔 度 DP " ; DP
180 '
190 N = INT(360/DP) + 1 : DIM X(N),Y(N)
200 '
210 RAD=3.14159/180
220 LOCATE 0,0 :       'カーソルを 0 行 0 桁におく
230   PRINT "  DEGREE" ; SPC(12) ; "SIN X"
240 '                  ' space 12 個
250 RAD=3.14159/180
260 J=0
270 FOR X=0 TO 360 STEP DP
280   X(J)=X
290   P=X*RAD : Y(J)=SIN(P)
300     PRINT USING "######" ; X ;
310     PRINT SPC(11) ;
320     PRINT USING "##.######" ; Y(J)
330   J=J+1
340 NEXT X
350     PRINT
360   ND=J-1
370 PRINT " 次に進むには何かキーを押してください。"
380 *A1 : IF INKEY$="" THEN *A1
390 CONSOLE 0,24,0     '全行 scrole 、Fキー非表示
400 '**************************************************
410 '*******         グラフ用紙描画      ********
420 '**************************************************
430  CLS                'テキスト画面クリア 
440  SCREEN 3,0,0,1   'グラフィック 画面高解像度、カラー  
450  XO=144 : YO=200
460  LX=360 : LY=288
470    LINE (XO,YO-LY/2)-(XO+LX,YO+LY/2),,B
480  NX=12  : NY=10        
490  FOR K=1 TO 11
500    XK=XO+LX/NX*K
510    LINE (XK,YO-LY/2)-(XK,YO+LY/2),,,&H101
520  NEXT K
530  FOR K=1 TO 9
540    YK=YO+LY/2-LY/NY*K
550    LINE (XO,YK)-(XO+LX,YK),,,&H101
560  NEXT K
570 PRINT " 次に進むには何かキーを押してください。"
580 *A2 : IF INKEY$="" THEN *A2 ELSE CLS
590 '**************************************************
600 '*******         グラフ    描画      ********
610 '**************************************************
620  XL=0   : XH=360       
630  YL=-1  : YH=1         
640  DX=LX/(XH-XL)   'xの単位増分に対するドット数
650  DY=LY/(YH-YL)   'yの    〃
660 FOR J=0 TO ND
670  XQ=XO + DX*X(J)       
680  YQ=YO - DY*Y(J)       
690   IF J=0 THEN *A3
700    LINE (XP,YP)-(XQ,YQ),4
710 *A3 : XP=XQ : YP=YQ
720 NEXT J
730 '**************************************************
740 '*******       文字描画(text 画面)    ********
750 '**************************************************
760  LOCATE 12,3 : PRINT " 1.0"
770  LOCATE 12,12: PRINT " 0.0"
780  LOCATE 12,21: PRINT "-1.0"
790  LOCATE 17,22: PRINT " 0"; SPC(20);"180";SPC(20);"360";
800  LOCATE 0 ,0
810 PRINT " 次に進むには何かキーを押してください。"
820 *A5 : IF INKEY$="" THEN *A5
830 CLS 3
840 CONSOLE 0,24,1     '全行 scrole 、Fキー表示
850 END

             

****************************************** ** 保存 100 - 850 をマウスで反転させ ** ** 編集−−−コピー          ** ** メモ帳または一太郎を起動し     ** ** 編集−−−貼り付け         ** ** 注意 行番号の前にスペースが無いこと ** ** ファイル−−−保存         ** ** ファイル名をつけて kaitou-2.BAS  ** ** TXT 形式 で保存する。        ** ******************************************