このディレクトリの索引
http://toro.2ch.net/test/read.cgi/tech/1364700745/961
#  【質問テンプレ】 
#  [1] 授業単元:c言語 
#  [2] 問題文(含コード&リンク):右に示すように1234567890を繰り返し表示するプログラムを作成せよ。なお、表示する数字は読み込まれた整数値の個数とする。 
#  右に示されている図 
#  整数の入力してください:25 
#  1234567890123456789012345 
#  

'1234567890を繰り返し表示するプログラムを作成せよ。なお、表示する数字は読み込まれた整数値の個数とする。' :-
        整数を得る(整数,true,_個数),
        '1234567890を繰り返し表示する'(1,_個数,'1234567890',0).

'1234567890を繰り返し表示する'(_何文字目,_個数,_,_) :-
        _何文字目 > _個数,!.
'1234567890を繰り返し表示する'(_何文字目,_個数,_文字列,_取り出し位置) :-
        一文字表示(_文字列,_取り出し位置,_次の取り出し位置),
        _次で何文字目 is _何文字目 + 1,
        '1234567890を繰り返し表示する'(_次で何文字目,_個数,_文字列,_次の取り出し位置).

一文字表示(_文字列,_取り出し位置,_次の取り出し位置) :-
        sub_atom(_文字列,_取り出し位置,1,_,_文字),
        write(_文字),
        取り出し位置の更新(_取り出し位置,_次の取り出し位置).

取り出し位置の更新(9,0) :- !.
取り出し位置の更新(_取り出し位置,_次の取り出し位置) :-
        _次の取り出し位置 is _取り出し位置 + 1.