このディレクトリの索引
http://hibari.2ch.net/test/read.cgi/tech/1291471791/746
#  [1] 授業単元:プログラミング演習  
#  [2] 問題文(含コード&リンク) 
#  問題1  非負の整数値を読み込んで、その数を逆順に表示するプログラムを作成しなさい(while文または for文) [オプション機能(任意)] 負の数を読み込んだ場合は再入力を促すこと(do-while文) 
#   <実行例>  
#  非負の整数値を入力してください;-4673  
#  負の値を入力しないでください。  
#  非負の整数値を入力してください;12345  
#  逆から読むと54321です。  
#  <ヒント>   
#  一の位の数字を求める方法  
#  1963 % 10 -> 3  
#  196  % 10 -> 6  
#  19 % 10 -> 9  
#  1 % 10 -> 1  

非負の整数値を読み込んで、その数を逆順に表示する :-
        非負の整数値を読み込んで(_非負の整数値),
        その数を逆順に(_非負の整数値,_非負の整数値の逆順表示),
        表示する(_非負の整数値の逆順表示).

非負の整数値を読み込んで(_非負の整数値) :-
        催促付き整数入力('非負の整数値を入力してください;',_非負の整数値),
        非負の整数入力診断(_非負の整数値),!.
非負の整数値を読み込んで(_非負の整数値) :-
        非負の整数値を読み込んで(_非負の整数値).

非負の整数入力診断(_非負の整数値) :-
        _非負の整数値 >= 0,!.
非負の整数入力診断(_非負の整数値) :-
        write('入力されたのは負の整数でした。再入力をお願いします。\n'),
        fail.

その数を逆順に(_非負の整数値,_非負の整数値の逆順表示) :-
        number_chars(_非負の整数値,Chars),
        reverse(Chars,_非負の整数値の逆順ならび),
        concat_atom(_非負の整数値の逆順ならび,_非負の整数値の逆順表示).

表示する(_非負の整数値の逆順表示) :-
        write_formatted('%t\n',[_非負の整数値の逆順表示]).