このディレクトリの索引
http://toro.2ch.net/test/read.cgi/tech/1335517816/909
#  [1] 授業単元:繰り返し処理  
#  [2] 問題文(含コード&リンク): 
#  キーボードから整数 a, bの値を読み込み, 
#  aからbまでカウントアップするプログラムをfor文を用いて作成しなさい。 
#  ただし,読み込んだa, bの値がa > bの場合には、 
#  「カウントアップできません。」と表示して終了すること。  
#  

'キーボードから整数 a, bの値を読み込み,aからbまでカウントアップするプログラムをfor文を用いて作成しなさい。ただし,読み込んだa, bの値がa > bの場合には、「カウントアップできません。」と表示して終了すること。'(_n) :-
        'キーボードから整数 a, bの値を読み込み'(_a,_b),
        'aからbまでfor文を用いてカウントアップする。ただし,読み込んだa, bの値がa > bの場合には、「カウントアップできません。」と表示して終了する'(_a,_b,_n).

'キーボードから整数 a, bの値を読み込み'(_a,_b) :-
        'キーボードから整数_aの値を読み込み'(_a),
        'キーボードから整数_bの値を読み込み'(_b).

'キーボードから整数_aの値を読み込み'(_a) :-
        write('_aの値を入力してください : '),
        'キーボードから整数値を読み込み'(_a).

'キーボードから整数_bの値を読み込み'(_b) :-
        write('_bの値を入力してください : '),
        'キーボードから整数値を読み込み'(_b).

'キーボードから整数値を読み込み'(_整数値) :-
        get_line(Line),
        整数値の読み込み診断(Line,_整数値),!.
'キーボードから整数値を読み込み'(_整数値) :-
        'キーボードから整数値を読み込み'(_整数値).

整数値の読み込み診断(Line,_整数値) :-
        atom_to_term(Line,_整数値,_),
        integer(_整数値),!.
整数値の読み込み診断(Line,_整数値) :-
        writef('入力された %t からは整数値が得られません。再入力をお願いします。\n',[Line]),
        fail.

'aからbまでfor文を用いてカウントアップする。ただし,読み込んだa, bの値がa > bの場合には、「カウントアップできません。」と表示して終了する'(_a,_b,_n) :-
        \+('読み込んだa, bの値がa > bの場合には'(_a,_b)),
        for(_a,_n,_b).
'aからbまでfor文を用いてカウントアップする。ただし,読み込んだa, bの値がa > bの場合には、「カウントアップできません。」と表示して終了する'(_a,_b,_n) :-
        '読み込んだa, bの値がa > bの場合には'(_a,_b),
        '「カウントアップできません。」と表示して終了する'.

for(S,S,E) :-
        S =< E.
for(S,N,E) :-
        S < E,
        S_2 is S + 1,
        for(S_2,N,E).

'読み込んだa, bの値がa > bの場合には'(_a,_b) :-
        _a > _b.

'「カウントアップできません。」と表示して終了する' :-
        '「カウントアップできません。」と表示して',
        終了する.

'「カウントアップできません。」と表示して' :-
        write('カウントアップできません。\n').

終了する.