このディレクトリの索引
http://toro.2ch.net/test/read.cgi/tech/1349527750/649
#  [1] 情報処理演習 
#  [2] ここのNo.384です 
#  http://ime.nu/s2.etowns.slyip.net/~c_cpp_homework/cgi-bin/joyful/joyful.cgi 
#  9. x を-3.14 以上 3.14 以下の範囲で 0.02 ずつ変化させ, y = cos x 及び y = sin xの値を画面表示するプログラムを作成せよ.ただし, y = cos x 及び y = sin xは,次式に示す多項式 
#  cos(X) = 1 - x^2/2! + x^4/4! - x^6/6! + x^8/8! - x^10/10!
#  sin(X) = x - x^3/3! + x^5/5! - x^7/7! + x^9/9! - x^11/11!
#  により計算すること.また,これらの計算を行う関数のプロトタイプをそれぞれ「double 
#  mycos(double)」,「double mysin(double)」とし,3 で作成した「kaijo()」関数を利用すること. 
#  
#  14. 1 以上の整数 n を入力し,n の階乗を計算して画面表示するような void 型の関数 void 
#  factorial(int)  を用いて n の階乗を求めるようなプログラムを作成せよ.またこのプログラムと 3 で作成したプログラムを比較せよ.

'x を-3.14 以上 3.14 以下の範囲で 0.02 ずつ変化させ, y = cos x 及び y = sin xの値を画面表示するプログラムを作成せよ.ただし, y = cos x 及び y = sin xは,次式に示す多項式 
cos(X) = 1 - x^2/2! + x^4/4! - x^6/6! + x^8/8! - x^10/10!
sin(X) = x - x^3/3! + x^5/5! - x^7/7! + x^9/9! - x^11/11!
により計算すること' :-
        between(1,314,N),
        X is -3.14 + N * 0.02,
        'y = cos x 及び y = sin xの値を表示する'(X),
        N = 314.

'y = cos x 及び y = sin xの値を表示する'(X) :-
        cos(X,_cosX),
        sin(X,_sinX),
        表示する(X,_cosX,_sinX).

cos(X,_cosX) :-
        findall(U,(
                    for(1,0,5),
                    N_2 is N * 2,
                    階乗(N_2,N_2_の階乗),
                    U is (((-1) ^ N) * (X ^ 2)) / N_2_の階乗),
                _cosX).

sin(X,_cosX) :-
        findall(U,(
                    for(1,0,5),
                    N_2 is 1 + N * 2,
                    階乗(N_2,N_2_の階乗),
                    U is (((-1) ^ N) * (X ^ 2)) / N_2_の階乗),
                _sinX),

表示する(X,_cosX,_sinX) :-
        writef('%t: %t, %t\n',[X,_cosX,_sinX]).