Блоґ одного кібера

Історія хвороби контуженого інформаційним вибухом

Posts Tagged ‘prolog

Програмування в логіці

with 2 comments

Пролог тобто. Мій імперативний мозок все ще не в’їхав. Тим не менш, я потрохи просунувся, а сьогодні я взагалі молодчина і окрім прологу. Єй!

Вчуся я по двох книжках: Adventure in Prolog, та Вікіпідручник звісно.

На контрольній я дойшов до першої задачі:

Знаходження синуса рядами Тейлора (ой, ця мова явно на таке не розрахована, або я якось не так написав):

% sin рядами тейлора 
% sin(x) = x – x^3/3! + x^5/5! – x^7/7! + …

fak(0,1).
fak(X,F) :- 
        X > 0
        X2 is X-1,
        fak(X2,F2),
        F is F2*X.

pow(X,1,X).
pow(X,N,R) :- 
        N > 1,
        N2 is N – 1,
        pow(X,N2,R2),
        R is R2*X.

sign(1,1).
sign(3,-1).
sign(N,S) :- N2 is N – 4, sign(N2,S).

tayloritem(X,N,I) :- 
        sign(N,Sign), 
        pow(X,N,Pow), 
        fak(N,Fak), 
        I is Sign * Pow / Fak.

good_precision(X,N,E):- tayloritem(X,N,I), I < E, I > -E.

resin(X,1,Res):- tayloritem(X,1,Res).
resin(X,N,Res):-
        N > 0,
        N2 is N – 2,
        tayloritem(X,N,I),
        resin(X,N2,Psin),
        Res is Psin + I.

mysin(X,Sin):- resin(X,101,Sin).

Залишились списки.

Written by bunyk

Травень 16, 2011 at 22:15

Оприлюднено в Кодерство, Конспекти, Нещоденник

Tagged with