このディレクトリの索引
http://hibari.2ch.net/test/read.cgi/tech/1312201995/809
#  [1] 授業単元:C言語 繰り返し 
#  [2] 問題文(含コード&リンク): 
#  1.キーボードから正の整数を2つ(x  y)入力し、縦x個、横y個の文字'*'  
#  からなる長方形を表示するプログラムを多重ループを用いて作成せよ。 
#   
#  2.キーボードから入力した10進整数(0以上2^31 -1以下)を二進数にせよ 
#  for文を使うこと。例えば2で割った余りと商の値によって下の桁のビットから求める等 
#    
#  

'キーボードから入力した10進整数(0以上2^31 -1以下)を二進数にする'(_二進数数値ならび,_二進数表示) :-
        'キーボードから入力した10進整数(0以上2^31 -1以下)を'(_10進整数),
        '10進整数(0以上2^31 -1以下)を二進数にする'(_10進整数,_二進数数値ならび,_二進数表示).

'キーボードから入力した10進整数(0以上2^31 -1以下)を'(_10進整数) :-
        write('10進整数(0以上2^31 -1以下)を入力してください : '),
        get_line(Line),
        '10進整数(0以上2^31 -1以下)入力検査'(Line,_10進整数),!.
'キーボードから入力した10進整数(0以上2^31 -1以下)を'(_10進整数) :-
        'キーボードから入力した10進整数(0以上2^31 -1以下)を'(_10進整数).

'10進整数(0以上2^31 -1以下)入力検査'(Line,_10進整数) :-
        atom_to_term(Line,_10進整数,_),
        _10進整数 >= 0,!.
'10進整数(0以上2^31 -1以下)入力検査'(Line,_10進整数) :-
        writef('入力された %t からは(0以上2^31 -1以下)の10進整数は得られません。再入力をお願いします。\n',[Line]),
        fail.

'10進整数(0以上2^31 -1以下)を二進数にする'(_10進整数,_二進数数値ならび,_二進数表示) :-
        '10進整数(0以上2^31 -1以下)を二進数にする'(_10進整数,[],_二進数表示).

'10進整数(0以上2^31 -1以下)を二進数にする'(0,_二進数数値ならび,_二進数数値ならび,_二進数表示) :-
        concat_atom(['0x|_二進数数値ならび],_二進数表示).
'10進整数(0以上2^31 -1以下)を二進数にする'(_10進整数,L,_二進数数値ならび,_二進数表示) :-
        _二進数の一桁 is _10進整数 mod 2,
'10進整数(0以上2^31 -1以下)を二進数にする'(_10進整数,L,_二進数表示) :-
        _二進数の一桁 is _10進整数 mod 2,
        _二で割った商 is _10進整数 // 2,
        '10進整数(0以上2^31 -1以下)を二進数にする'(_ニで割った商,[_二進数の一桁|L],_二進数数値ならび,_二進数表示).