課題 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 形式 で保存する。 ** ******************************************