このディレクトリの索引
http://hibari.2ch.net/test/read.cgi/tech/1311089619/661
#  入力された数を16進数で表示するプログラムを作れ。但し、文字(数字やアルファベット)を表示するのに関数 putchar()を使うこと。 
#   
#  (例)hexという名前のプログラムを作り、217を入力した場合に以下のようになる。 
#   Q:\hello> hex 
#   Input? 217 
#   Kotae = D9    (注) 217 == 13*16 + 9 
#   Q:\hello> 
#   
#   
#  (注意)この例でInput? や Kotae = の部分は入力したものではなく、プログラムが表示した部分である。これらは、出来るだけ分かりやすいものにすることが望ましい。 
#   
#  cでお願いします。 
#   
# 
# 

'入力された数を16進数で表示するプログラムを作れ。但し、文字(数字やアルファベット)を表示するのに関数 putchar()を使うこと' :-
        '入力された数'(_入力された数),
        '入力された数を16進数で表示する'(_入力された数,[],_16進文字ならび),
        concat_atom(_16進文字ならび),
        append(_,[_16進文字|R],_16進文字ならび),
        putchar(_16進文字),
        R = [].

'入力された数を16進数で表示する'(0,L1,['0'|L1]) :- !.
'入力された数を16進数で表示する'(1,L1,['1'|L1]) :- !.
'入力された数を16進数で表示する'(N,L1,_16進文字ならび) :-
        N_1 is N // 16,
        M is N mod 16,
        '10進数から16進数表示'(M,_16進文字),
        '入力された数を16進数で表示する'(N_1,[_16進文字|L1],_16進文字ならび).

'10進数から16進数表示'(0,'0').
'10進数から16進数表示'(1,'1').
'10進数から16進数表示'(2,'2').
'10進数から16進数表示'(3,'3').
'10進数から16進数表示'(4,'4').
'10進数から16進数表示'(5,'5').
'10進数から16進数表示'(6,'6').
'10進数から16進数表示'(7,'7').
'10進数から16進数表示'(8,'8').
'10進数から16進数表示'(9,'9').
'10進数から16進数表示'(10,'A').
'10進数から16進数表示'(11,'B').
'10進数から16進数表示'(12,'C').
'10進数から16進数表示'(13,'D').
'10進数から16進数表示'(14,'E').
'10進数から16進数表示'(15,'F').