ページ 11

sinとcosを求める

Posted: 2009年11月25日(水) 21:32
by 五島
xの値を0度から360度まで15度刻みで変化させ
sin(x)とcos(x)をwhile文を使って表示するプログラム
を作成中なのですがどうしてもエラーに
なってしまいます。

<math.h>を呼び出しているのですがいまひとつ
わかりません。

このプログラムを教えていただけないでしょうか?

Re:sinとcosを求める

Posted: 2009年11月25日(水) 22:04
by MNS
まずは、そのエラーが出るコードと、エラーの内容を提示してください。
そうすれば、こちらから助言することが出来ます。

Re:sinとcosを求める

Posted: 2009年11月26日(木) 12:13
by toyo
math.hで使われる角度は0-360度の角度ではなくて0-2πのラジアンという単位を使います
180度がπ(3.141592.....)なので例えばsin(30°)はsin(π * 30 / 180)で求められます
例はsin(30°)を表示するプログラムです
#include <stdio.h>
#include <math.h>
#define M_PI       3.14159265358979323846

int main (void){
	printf("sin(30) = %f\n", sin(M_PI * 30 / 180));
	return 0;
}
15度きざみのループはわかりますよね

Re:sinとcosを求める

Posted: 2009年11月28日(土) 08:38
by Naohiro19
toyoさんのC言語のプログラムをLuaというスクリプト言語で書くと以下のようになります。Luaにはセミコロン(;)は不要です。
local sin30 = math.sin(math.pi * 30 / 180)
local message = string.format("sin(30) = %f", sin30 )
print( message )
=================
結果
>lua -e "io.stdout:setvbuf 'no'" "30.lua" 
sin(30) = 0.500000
>Exit code: 0

Re:sinとcosを求める

Posted: 2009年11月28日(土) 09:54
by KEYONN_
コンパイルして、確認してませんが、
こんな感じですかね。?
#include<stdio.h>
#include<math.h>
#define RAD (3.141592659/180)

int main(void)
{
	while(angle<360)
	{
		printf("sin(%d)度は%f:cos(%d)度は%fです。\n",angle,sin(angle*RAD),angle,cos(angle*RAD));
		angle+=15;
		
	}
}

Re:sinとcosを求める

Posted: 2009年11月28日(土) 10:39
by 初級者
どうせなら、angleの定義と初期化もしてあげましょう。

Re:sinとcosを求める

Posted: 2009年11月28日(土) 11:13
by dic
ラジアンでしたっけ?
高校で習ってないのよねぇ・・・