ページ 1 / 1
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
ラジアンでしたっけ?
高校で習ってないのよねぇ・・・