≫ ホーム ≫ C言語ヘッダファイル別一覧 | C言語アルファベット別一覧 ≫ math.h ≫ asin, asinf, asinl
逆正弦 (arcsin) を計算します.
#include <math.h>
double asin( double x );
asin 関数は x の逆正弦 (arcsin) を計算し,結果を double 型で返します.
#include <math.h>
float asinf( float x );
asinf 関数は x の逆正弦 (arcsin) を計算し,結果を float 型で返します.
#include <math.h>
long double asinl( long double x );
asinl 関数は x の逆正弦 (arcsin) を計算し,結果を long double 型で返します.
asin,asinf,asinl 関数は,引数 x が区間 [-1, +1] 内にない場合,定義域エラー (domain error) が発生します.
以下に asin,asinf,asinl 関数それぞれを使用して逆正弦を求めるサンプルプログラムを示します.
/* header files */
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
/* functions */
double to_deg(double);
double pi();
/* main */
int main(void) {
double d = sin(pi() / 3.0), d_rad, d_deg;
float f = sin(pi() / 4.0), f_rad, f_deg;
long double ld = sin(pi() / 6.0L), ld_rad, ld_deg;
/* 逆正弦 (arcsin) を取得する */
d_rad = asin(d);
f_rad = asinf(f);
ld_rad = asinl(ld);
/* 弧度法 から 度数法 に変換する */
d_deg = to_deg(d_rad);
f_deg = to_deg(f_rad);
ld_deg = to_deg(ld_rad);
/* 結果の表示 */
printf("asin(%.8f): %.2f度\n", d, d_deg);
printf("asinf(%.8f): %.2f度\n", f,f_deg);
printf("asinl(%.8Lf): %.2Lf度\n", ld, ld_deg);
return EXIT_SUCCESS;
}
/**
* 弧度法表記を度数法表記に変換する
* @param r 角度[rad]
* @return 角度[deg]
*/
double to_deg(double r) {
return r * 180.0 / (atan(1.0) * 4.0);
}
/**
* 円周率を求める
* @return 円周率
*/
double pi(void) {
return atan(1.0) * 4.0;
}
サンプルプログラムの実行結果は以下のようになります.
asin(0.86602540): 60.00度 asinf(0.70710677): 45.00度 asinl(0.50000000): 30.00度
たくさんあるC言語関連の書籍の中でも特に役に立った本です.よかったら参考にしてみてください.
C言語の実践的参考書.少々値段は張りますが初心者を脱しようとしている人は絶対に読むべきです.
文法だけでなく,コーディングスタイルやデバッグなど文字通り「実践的」なことが書かれているので非常にためになります.
オライリーの本は,読みにくい本が多いのですが本書はとても読みやすくオススメです.
ポインタの解説書としては最高の書籍です.
この1冊でポインタを完全に理解することができます.全くの初学者が読むには敷居が高いですが,入門書を読み終えた後に読むと非常に有益です.