このディレクトリの索引
http://toro.2ch.net/test/read.cgi/tech/1339338438/779
#  [1] 授業単元:C言語演習 
#  [2] 問題文(含コード&リンク): 
#  http://ime.nu/codepad.org/Sru2YLvl  
#  のプログラムがきちんと実行できるように、完成させよ。 
#  ただし、2つの整数がともに0の時に、実行を終了するようにせよ。 
#   
#  実行例 
#  bunshi:-1 
#  bunbo:2 
#  -1/2 
#  bunshi:1 
#  bunbo:-2 
#  -1/2 
#  bunshi:3 
#  bunbo:1 
#  3 
#  bunshi:0 
#  bunbo:0 
#   

分数を表示する :-
        整数を得る(分子,_分子),
        整数を得る(分母,_分母),
        分数を表示する(_分子,_分母).
        終了条件(_分子,_分母).

終了条件(0,0).

分数を表示する(0,0) :- !.
分数を表示する(_,0) :-
        write('分母が0の分数はエラーとなります\n'),!.
分数を表示する(_分子,_分母) :-
        正の分数を表示する(_分子,_分母).
分数を表示する(_分子,_分母) :-
        負の分数を表示する(_分子,_分母). 

正の分数を表示する(_分子,_分母) :-
        正の分数を(_分子,_分母),
        _分子_1 is abs(_分子_1),
        _分母_1 is abs(_分母_1),
        約分(_分子_1,_分母_1,_分子_2,_分母_2),
        表示する('',_分子_2,_分母_2).

負の分数を表示する(_分子,_分母) :-
        負の分数を(_分子,_分母),
        _分子_1 is abs(_分子),
        _分母_1 is abs(_分母),
        約分(_分子_1,_分母_1,_分子_2,_分母_2),
        表示する('-',_分子_2,_分母_2).

正の分数を(_分子,_分母) :-
        _分子 >= 0,
        _分母 >= 0,!.
正の分数を(_分子,_分母) :-
        _分子 =< 0,
        _分母 =< 0,!.

負の分数を(_分子,_分母) :-
        _分子 > 0,
        _分母 < 0,!.
負の分数を(_分子,_分母) :-
        _分子 < 0,
        _分母 > 0,!.

表示する(_符号,_分子,1) :-
        writef('%t%t',[_符号,_分子]),!.
表示する(_符号,_分子,_分母) :-
        writef('%t%t/%t',[_符号,_分子,_分母]).