このディレクトリの索引

http://pc12.2ch.net/test/read.cgi/tech/1247438792/812
#  続けて申し訳ありません 
#  [1] 授業単元:プログラミング演習 
#  [2] 問題文(含コード&リンク): 
#   
# 引数に度(degree)をとるsin_degree関数を作成しなさい。
# math.hで宣言されているsin関数を使用せずに自作すること。 


sin_radian(_ラジアン角度,X) :-
        sin_degree(1,20,_ラジアン角度,1.0,0.0,X).

sin_degree(_角度,X) :-
        R is (_角度 / 180) * 3.14159,
        sin_degree(1,20,R,1.0,0.0,X).

sin_degree(M,N,_,_,X,X) :- M > N,!.
sin_degree(M,N,R,K,Y,X) :-
        sin_degree(M,R,1,U),
        Y2 is Y + U * K,
        K2 is K * (-1),
        M2 is M + 2,
        sin_degree(M2,N,R,K2,Y2,X).

sin_degree(0,R,X,X) :- !.
sin_degree(N,R,Y,X) :-
        Y2 is (Y * R) / N,
        N2 is N - 1,
        sin_degree(N2,R,Y2,X).

cos_radian(_ラジアン角度,X) :-
        sin_radian(_ラジアン角度,Y),
        X is sqrt(1 - Y * Y).

cos_degree(_角度,X) :-
        R is (_角度 / 180) * 3.14159,
        cos_radian(R,X).