• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:プログラミングの課題で困ってます。)

プログラミング課題:正弦関数のグラフを描く

このQ&Aのポイント
  • プログラミングの課題で困っています。正弦関数x=sintのグラフを描くためのプログラムを教えてください。
  • 課題には、プログラムの作成とグラフの描画が含まれています。具体的には、数値xに対応する■の数を表示するプログラムを作成し、ウインドウ内にグラフを描画する必要があります。
  • プログラミング言語はvisual C++ 2008を使用しています。プログラムの中では、正弦関数の値を計算し、それに応じて■を表示しています。

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

  • ベストアンサー
  • sweet76
  • ベストアンサー率39% (584/1497)
回答No.1

もう一つでも言われてるけど、課題の丸投げはやめましょう。 せめてどこがわからないのか、何がわからないのか書かないと質問とはいえません。 プログラムも上達しません!

すると、全ての回答が全文表示されます。

その他の回答 (3)

  • yama5140
  • ベストアンサー率54% (136/250)
回答No.4

>x[i]=sin(0.1*i);  「ラジアン」て言葉聞いたことありますか。  sin()はラジアン値を引数とします。  http://www.bohyoh.com/CandCPP/C/Library/sin.html +++++++++++++++++++++++++++++++++++ 検索にヒットした  http://okwave.jp/qa/q6286616.html  この「ベストアンサー」を改修した例↓。  ■    ■   ■ → ■■  ■    ■ >数値xに対する■の数はウインド各行に表示される >しきれる範囲内で任意に定めてよい。  ■1つは、数値幅 0.1 に対応しています。  正弦値 0.0 のとき(■10個のバイアスを付けて)中央となります。 #include <stdio.h> #include <math.h> #define PI 3.1415 #define STEP (360.0/31.0) // 「31行程度で」 void main() { int i, iVal; double x, dVal; for( x = 0.0; x <= 360.0; x += STEP ){ dVal = sin( x * PI / 180.0 ); // -1.0 ~ 1.0 dVal *= 10.0; // -10.0 ~ 10.0 dVal += 10.5; // 0.5 ~ 20.5 バイアス+四捨五入下準備 iVal = (int)dVal; // 0 ~ 20 printf( "%3d゜", (int)x ); // おまけ for( i = 0; i < iVal; i++ ) printf( "■" ); printf( "\n" ); } }

すると、全ての回答が全文表示されます。
  • kmee
  • ベストアンサー率55% (1857/3366)
回答No.3

追記: > for(i=0; i<31; i++){ > x[i]=sin(0.1*i); > } これだと、0.0≦θ≦3.0(≒π)だから、半周期弱のカーブしか表示されない。 それでいいならこのままでいいし、1周期以上出力するなら、括弧の中の式を変える必要がある。

すると、全ての回答が全文表示されます。
  • kmee
  • ベストアンサー率55% (1857/3366)
回答No.2

・sin θ の値は、どんな範囲になるかよく思い出してください。 ・↑がわかったなら、その20倍がどんな範囲になるか考えてみてください。 ・↑から「for(j=0; j<x[i]*20; j++)」をどう変えたらいいか考えてみてください。 j=0をそのまま、 j<x[i]*20 の右辺の式を適切に変える方法と j<x[i]*20をそのまま、 j=0の0を適切な値に変える方法とあります。

すると、全ての回答が全文表示されます。

関連するQ&A