• ベストアンサー

basicでの三角関数のグラフの書き方??

active basicを使って、sinxのグラフを書こうとしたのですが、出来ません。以下のようにやってみたのですが、x軸と平行な点線が描かれるだけ…。 100 cls3 110 line(50,550)-(1050,550) 120 line(550,50)-(550,1050) 130 for i=0 to 360 140 x=i/360:y=sinx 150 xw=500*x+550:yw=500*y+550 160 pset (xw,yw) 170 line -(xw,yw) 180 next i 990 end どこを直せばいいのか分かりません。初心者なので…。 どなたか分かる方がいらっしゃったら、教えてください。 宜しくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.4

Excelなんかでもそうですが、三角関数に使う角度は ラジアンを使います。 質問者さんのプログラムを見ますと、 >130 for i=0 to 360 >140 x=i/360:y=sinx iを360で割っていますが、これでは半端なグラフしか書けません。 それから、BASICの関数は引数をカッコでくくらなくてはいけません。 >140 x=i/360:y=sin(x*3.14159*2) こうしてみてください。 それから160行は余計な気がします。代わりに、 125 pset(550,550) これを追加してみてください。

mican00
質問者

お礼

試してみます。どうも有難うございました!

その他の回答 (4)

  • Takochu
  • ベストアンサー率53% (82/154)
回答No.5

140行の y= を   y=Sin(i*3.141592/180) に変更すれば、うまくいきます。 Sin(x) の x はラジアンで指定します。 x に 3.141592/180 を掛ければ、角度に変換できます。 また、i が 0~360 に変化するのですから、 x ではなく i を指定します。

mican00
質問者

お礼

ご回答どうもありがとうございました!助かりました。

  • elmclose
  • ベストアンサー率31% (353/1104)
回答No.3

line 140 の y=sinx って、sinxが変数とみなされて、 それで初期値0がセットされたままになってる可能性はないですか?

mican00
質問者

お礼

そうなんでしょうか?確かに、y=1の線上に点線が現れてるような…。どう直したらいいんでしょうか?? ご回答、どうも有難うございました。

  • paspas
  • ベストアンサー率52% (47/90)
回答No.2

active basicはしようしたことはないのですが、気になることを少し。 まず、角度の単位は度ではなくラジアンではないでしょうか。 pi=3.1415 '有効桁数にしてください x=i/180*pi としてはどうでしょうか?

mican00
質問者

お礼

なるほど~。分かりました。どうも有難うございます!

  • RAPTsong
  • ベストアンサー率42% (74/175)
回答No.1

# ここ6~7ほどBASICから離れていたので記憶が曖昧ですが。 basic って、 y = sinx って構文は許されていましたっけ? y = sin * x とか、ラジアン変換か何か必要だったような気がします。

mican00
質問者

お礼

そうですね、後で調べてみたら、ラジアン変換が必要でした。でも、ラジアン変換ってどうやったらいいのかが分からなくて…もうちょっと考えて見ます。有難うございました。

関連するQ&A

  • 三角関数のグラフのうちのtanは

    sinとcosのグラフは書けるようになりました。 平行移動する時は、(0、π/2、π、3π/2、2π)を平行移動させた所をx軸に書けばいいんですよね? あと、y軸の交点も入れればいいんですよね? ですが、y=tanxはxどの範囲で書けばいいんですか sinxやcosxは0~2πの間ですよね。んでπ/2、π、3π/2、2πに点打ちますよね。tanだと周期π?だから、sinとかcosが、π/2、π、3π/2、2πに点打つのに対して、tanxはπ/2とπに点打って結べばいいんですか?

  • BASICでの波形合成

    学校でのBASICの宿題で、複数のSIN波を合成する問題で 100 CLS 3:LINE(0,240)-(640,240),7 110 INPUT"基本波の周期は";C 120 INPUT"基本波の振幅は";W 130 INPUT"基本波の移送は";F 140 INPUT"第何倍音まで計算する";N:DIM A(N),B(N) 150 FOR I=1 TO N 160 PRINT I;:INPUT "番目の倍音の振幅は";A(I) 170 PRINT I;:INPUT "番目の倍音の移送は";B(I) 180 NEXT I 190 FOR K=0 TO 360/C*2*3.14159# STEP 3.14159#/90 200 X=C*K-F:Y=-(W*SIN(K))+240:LINE-(X,Y),4 210 NEXT K 220 FOR G=1 TO N:PSET(0,240),3 230 FOR H=0 TO 360/C*2*3.14159# STEP 3.14159#/90 240 X=C/(G+1)*H-B(G):Y=-((A(G))*SIN(H))+240:LINE-(X,Y),3 250 NEXT H,G ここで描いたSIN波を合成した波を描く方法が分からない状態です。 どうにも解決できないのでここに質問しました。どなたか分かる方がいたら教えてください。

  • 三角関数

    授業に参加してるのが1/5以下ってどうですかね? 普通っちゃ普通なのかもしれないけど、自分はあんま授業妨害する人じゃないので分かりませんね。 y=cosxとかy=sinxのグラフは、π/2、π、3π/2、2πってx軸に書いて、それと対応する値をyに点打つじゃないですか。y=sinπ/2なら、π/2から上に上がって、1の所に点打ちますよね。 じゃあy=cos(x-π/4)のグラフは、π/2、π、3π/2、2πの+1/4した値をx軸上に書いて、それと対応する値をy軸に点打てばいいんですか?π/2なら1/4平行移動したら、3π/4じゃないですか。 だから、x軸上に3π/4って書いて、yは何したらいいんだか分かりませんけど(1+1/4?)‥ あと、このグラフy軸に接するのが1/√2らしいんですが、0代入すると、cos(-π/4)なんですよね。-1/√2じゃないんですか? あと、2πまでしか基本的にはグラフ書かないけど、たまに9/2πとか2π超えて書くのもありますよね。 それとy=tanxのグラフはx軸にいくつを書くんですか? y=cosxとかy=sinxは、π/2、π、3π/2、2πってx軸に書きますよね。 あと、sinx=-1/2(0≦x≦2π) これとかどうするんですか。 出題されてから言えって感じかもしれないですけど、 sinじゃなくて、cosとかtanになったらどうするんですか?

  • 三角関数 

    いくつか分からないところあるんで教えてください 予めx軸y軸が設定されてたらそこの範囲書くと言ってましたが、 もし、y=sin(x-(π/4))だったら、sinxなら4πでx軸に接しますが、π/4平行移動するから、このグラフx軸に接するのが、17π/4じゃないですか。 けど、書く範囲は4πまでだから、x軸に接しない微妙なところで書くのを終えるって事ですか?ですがそれで辞めたらまた文句言われるんですかね。 それで、x軸y軸自分で書く場合はxはどこからどこまでの範囲書けばいいんですか?課題の時は、-まであったから-の範囲も書けという事でしたが、自分で書くなら-書かなきゃいい話だと思うんですよね。 まあ平行移動で左に移動するなら、0から平行移動した分の値を記すのに-書かないといけませんが。 何か分かってるのにこういう細かいようなことが出来ないのが非常に嫌なんです。以前もそういう様なことあったんですが、その時はうざくなって結局何もせず20点でした。けど何で全く分からないわけじゃないのに点引かれるんですか?それが非常に嫌です。 上手くまとめれませんが、こんな感じです。

  • 数学 三角関数グラフ

    昨日x軸とy軸が予め決まってる時は、そこまで描き、更にπ/2伸ばせばOKと言われたんですが、 y=sin(x-π/4)なら、y=sinxで4πに来るのが、このグラフでは17π/4まで来るんですよね。 じゃあ、最後に終わるのはそのπ/2先の21π/4って事ですよね。そこまで線がないですよ。17π/4描いたら、あとほんの少ししかないですもん。 そういう時は、π/2じゃなくてもいいんですか?ほんの少し先っちょ伸ばすだけで

  • 三角関数のグラフをPCで書きたい

    三角関数(y=sinX)のグラフを30周期かいて、それにy軸に平行な線を等間隔で40本引きたいのですが、そういうのができるフリーソフトはあるでしょうか? 三角関数を書くだけのソフトはあるのですが、なかなかこういうソフトが見当たらなくて、 どなたかお願いします。

  • 数学 三角関数のグラフ

    y=cos(x+(-π/4) 結局-π~4πまで目盛りがπ/2ごとにあるんですが、どこまで書けばいいんですか? グラフの終わり(左端は-π、右端は4π)でやめていいんですか(とにかく端から端まで書くって事です)? 4πの時にx軸上に来たら微妙に伸ばせばいいんでしょうが‥これは4πに来た時終わりませんよね? これは、端から端まで伸ばすと回答得たんですが、要するに、途中で終わっても、とりあえず、端から端までって事ですか? あと、y=sinxなら4πでぴったり止まりますよね。x軸上で終わると途切れてる様に見えるから少し伸ばしたほうがいいですか? >すごい細かいことだし、本質的な事とは違うんですが、こんなことくらいで間違ったても×なんですよね。白紙で出しても点一緒なんですよね?こんな理不尽な話は無いと思うんですよ。 前回は質問内容理解してもらえなかったから書き直します 簡単に言うと、y=sinxは4πの時がy=0ですよね。だから、x軸上に乗りますが、そこで書くのをとめていいんですか? y=cos(x+(-π/4)なら4π(右端)の時x軸上に無いから、そこでとめれば、まだ続くって感じをアピールできるんですが‥

  • 関数y=sinxのグラフに関して?

     関数y=SinXのグラフを、y軸に関して対称移動し、さらにX方向に-π/2平行移動させる式はどうなりますか。

  • N88basicからVBScriptへの移行

    普通のベーシックでPsetやCirlceやLineというのがありますが それをVBSで使いたいのですがどうしたらいいのでしょうか? 例えば 10 for t=0 to 100 step 0.1 20 x=t 30 y=t 40 pset(x,y) 50 next t これをVBSに書き換えるとどういう風に書き換えたら良いのでしょうか? VBSは表示させる画面がないのでグラフィックは出来ないのでしょうか?

  • グラフを書きたいのですがどのようにして使うかわかりません

    FOR I=-200 to 200 FOR J=-200 to 200 X(0) = I / 100 ; Y(0) = J / 100 FOR N=0 to 1000 X(N+1) = X(N)^2 - Y(N)^2 + X(0) Y(N+1) = 2*X(N)*Y(N)+Y(0) IF X(N)^2 + Y(N)^2 > 4 THEN PSET(I,J) WHITE ELSE IF N = 1000 THEN PSET(I,J) BLUE ELSE NEXT N END IF NEXT J; NEXT I というグラフを書くプログラムがあるのですがこのプログラムの使い方がわからなくて使えないのでどのようにすれば見れるのか教えてください。

専門家に質問してみよう