No.3ベストアンサー
- 回答日時:
#include <stdio.h>
#include <memory.h>
#include <math.h>
#define PI 3.1415
void main()
{
int x, y;
int ival;
double dval;
char graph[21][38];
memset(graph, ' ', sizeof(graph));
for (x=0; x<=36; x++) {
dval = 10.0 * sin(((double)x * 10.0 * PI) / 180.0);
if (dval < 0)
ival = (int)(dval - 0.5);
else
ival = (int)(dval + 0.5);
graph[ival+10][x] = '*';
}
for (y=20; y>=0; y--) {
graph[y][37]='\0';
puts(graph[y]);
}
}
No.2
- 回答日時:
#include <stdio.h>
int main() {
printf("000 .....*....\n");
printf("010 .....*....\n");
printf("020 ......*...\n");
printf("030 .......*..\n");
printf("040 ........*.\n");
printf("050 ........*.\n");
printf("060 .........*\n");
printf("070 .........*\n");
printf("080 .........*\n");
printf("090 .........*\n");
printf("100 .........*\n");
printf("110 .........*\n");
printf("120 .........*\n");
printf("130 ........*.\n");
printf("140 ........*.\n");
printf("150 .......*..\n");
printf("160 ......*...\n");
printf("170 .....*....\n");
printf("180 .....*....\n");
printf("190 ....*.....\n");
printf("200 ...*......\n");
printf("210 ..*.......\n");
printf("220 .*........\n");
printf("230 .*........\n");
printf("240 *.........\n");
printf("250 *.........\n");
printf("260 *.........\n");
printf("270 *.........\n");
printf("280 *.........\n");
printf("290 *.........\n");
printf("300 *.........\n");
printf("310 .*........\n");
printf("320 .*........\n");
printf("330 ..*.......\n");
printf("340 ...*......\n");
printf("350 ....*.....\n");
printf("360 ....*.....\n");
return 0;
}
まず、1行を考えます。
・数字の桁を揃えて表示するには?
・x度のときの振幅10のsinの値の求め方は?
・C言語でsin関数を使うには、どうすればいい?また、角度の単位は何になってますか?度からその単位に変換するには?
・そのsin(x)の位置に"*"を置くなら、前後の"."(スペースとか別の文字でもいいですが)の数はそれぞれいくつ?
・その数だけ"."を表示するには?いろんな方法があるけど、「"."を表示」をその数だけ繰り返すには?
・以上の処理を、角度を0度から360度まで10度刻みでxを変化させて繰り返すには?
No.1
- 回答日時:
丸投げするよりも ご自身で何処まで理解なさっているのかを示しましょう
SIN波を描きたいのであればCのランタイムライブラリのsin関数を使うのでしょうから
#include <math.h>
はとりあえず必須でしょうね
ランタイム関数のsinですと引数はラジアンですので 円周率PI(パイ)の定数を記述しないといけないでしょう
これは tan(1)*4 や 3.1415492などを使うことになると思います
ラジアン = 角度*円周率/180
といった公式がありますので振幅の計算に使ってください
0から360まで 10刻みなら
for( n = 0; n < 361: n+= 10 ) {
// ココに振幅の計算処理
}
とか
n = 0;
while( n < 361 ) {
// ココに振幅の計算処理
n += 10;
}
といった具合でしょう
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- 数学 sin/x=1の証明で、範囲を0〜90度、0度〜-90度の2つの範囲でおいてから証明してますが、なぜ 4 2022/05/10 21:38
- 数学 複雑な三角関数の周期の求め方 2 2022/10/04 16:44
- 数学 sin/x=1の証明で、範囲を0〜1/2π、0度〜-1/2πの2つの範囲でおいてから証明してますが、 4 2022/05/10 21:57
- 数学 sin(45°-x)=sin(x+135°)が成り立つと思うのですが、 これを加法定理を使わずに(三 4 2023/05/25 12:34
- 物理学 xは位置 yは速さ tは時刻 (1) x=a sin(bt+c) (2) v=a sin(bt+c) 4 2023/06/14 02:09
- Visual Basic(VBA) VBAプログラミング 2 2022/11/27 12:07
- 物理学 電磁波に関する問題 1 2023/02/02 21:34
- 物理学 文字説明になってしまうのですがすいません。物理の問題です。 重さWの荷物を吊るす。 重さを吊るしたと 2 2023/07/06 02:40
- 数学 単振り子とルンゲ・タック法 1 2022/07/15 00:05
- C言語・C++・C# 画像の画素値を変えるC言語のプログラムで指定された画像の中に白い三角形を右上に表示させるにはどのよう 3 2022/10/30 01:16
このQ&Aを見た人はこんなQ&Aも見ています
-
性格の違いは生まれた順番で決まる?長男長女・中間子・末っ子・一人っ子の性格の傾向
同じ環境で生まれ育っても、生まれ順で性格は違うものなのだろうか。家庭教育研究家の田宮由美さんに教えてもらった。
-
sinカーブの表示のさせ方
C言語・C++・C#
-
c言語でグラフをつくる
C言語・C++・C#
-
任意の周波数の正弦波(サイン波)を生成する方法
C言語・C++・C#
-
-
4
サインカーブを計算したい
C言語・C++・C#
-
5
C言語で矩形波生成方法
C言語・C++・C#
-
6
C言語についてです。 アスタリスクを用いて、短形波を描きたく、for文を使えば良いかと思うのですがど
C言語・C++・C#
-
7
for文 アスタリスクで形を作る
C言語・C++・C#
-
8
【Excelで「正弦波」のグラフを描きたい】どうやれば描けるのか教えてください。
Excel(エクセル)
-
9
C言語プログラムについて質問です。 画像に正弦波を加えるというプログラムを教科書を見よう見まねで作り
C言語・C++・C#
-
10
e^(x^2)の積分に関して
数学
-
11
c++でサインカーブ、コサインカーブ、タンジェントカーブを表示するプログラムを教えてください。お願い
C言語・C++・C#
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
strcmp
-
【C言語教えてください】sin波...
-
球の体積と表面積を表示するプ...
-
cshの文字列操作(0埋め)
-
10個出力で改行したいのですが...
-
ifなんですが
-
printf で二進表示を行いたい。
-
関数について
-
円の面積を求めるプログラミン...
-
Visual Sutdio 2017 でのC言語...
-
コマンドプロンプトがすぐ消える
-
C言語の配列問題について
-
c言語 成績表示のプログラムで...
-
(C言語)西暦年月日を入力して...
-
printfの出力内の文字をdefine...
-
コンパイルエラーについて
-
C言語で五目並べを作成している...
-
%P と %X の違い
-
2つ分数の四則演算を行うプロ...
-
hit&bolwのプログラミングがで...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
10個出力で改行したいのですが...
-
printf で二進表示を行いたい。
-
【C言語教えてください】sin波...
-
strcmp
-
コンパイルエラーについて
-
c言語でAからZまでを表示する...
-
コマンドラインに出力した文字...
-
cshの文字列操作(0埋め)
-
4の倍数を論理演算で表す。。
-
C言語 プログラミング
-
%P と %X の違い
-
8人分のテストの点数を入力し、...
-
C言語での、年複利の計算方法...
-
printf( " %2d", p * q );
-
hit&bolwのプログラミングがで...
-
scanfに文字が入力されたときに...
-
error C2143: 構文エラー : ';'...
-
printfの出力内の文字をdefine...
-
テキストカーソル位置の取得
-
unsigned int型について
おすすめ情報