このディレクトリの索引
http://pc12.2ch.net/test/read.cgi/tech/1276810079/170
#  【質問テンプレ】  
#  [1] 授業単元: C言語プログラミング 
#  [2] 問題文(含コード&リンク): 
#  1.関数sqrtを使って1〜10までの二乗根の和を求めなさい。 
#  2.16進数ABC.DEを10進数にしなさい。 
#  

'関数sqrtを使って1〜10までの二乗根の和を求める'(X) :-
        findsum(Y,(for(1,N,10),Y is sqrt(N)),X).

'16進数ABC.DEを10進数に変換'(X) :-
        小数点を含む16進数の10進数への変換('ABC.DE',X).

小数点を含む16進数の10進数への変換(_16進文字列,_10進数) :-
        sub_atom(_16進文字列,S,1,RLen,'.'),
        sub_atom(_16進文字列,0,S,_,S_1),
        sub_atom(_16進文字列,S+1,RLen,_,S_2),
        '16進文字列表現を10進整数に変換'(S_1,N1),
        '16進文字列表現を10進整数に変換'(S_2,N2),
        Z is truncate(16 ^ RLen),
        _10進数 is N1 + N2 / Z.

% '16進文字列表現を10進整数に変換'/2 は http://nojiriko.asia/prolog/c136_75.html 参照