このディレクトリの索引
http://hibari.2ch.net/test/read.cgi/tech/1289913298/241
#  [1] 授業単元:プログラミング演習  
#  [2] 問題文(含コード&リンク) 
#  < 実行例 > 
10 9 8 7 6 5 4 3 2 1 
#  問題3 
#  キーボードから読み込んだ整数が1〜9の範囲内の場合は繰返し、それ以外の場合は終了するプログラムを作成しなさ い。 
#  < 実行例 > 
#  
整数: 8 
#  範囲内です  
#  
整数: 3  
#  
範囲内です  
#  
整数: 11  
#  
範囲外です。
 
#  終了します。 
#    

キーボードから読み込んだ整数が1〜9の範囲内の場合は繰返し、それ以外の場合は終了するプログラムを作成しなさい。 :-
        キーボードから読み込んだ整数(N),
        キーボードから読み込んだ整数が1〜9の範囲内の場合は繰返し、それ以外の場合は終了するプログラムを作成しなさい。(N).

キーボードから読み込んだ整数が1〜9の範囲内の場合は繰返し、それ以外の場合は終了するプログラムを作成しなさい。(N) :-
        N >= 1,
        N =< 9,
        write('範囲内です\n'),
        キーボードから読み込んだ整数(N2),
        キーボードから読み込んだ整数が1〜9の範囲内の場合は繰返し、それ以外の場合は終了するプログラムを作成しなさい。(N2),!.
キーボードから読み込んだ整数が1〜9の範囲内の場合は繰返し、それ以外の場合は終了するプログラムを作成しなさい。(_) :-
        write('範囲外です\n終了します\n').

キーボードから読み込んだ整数(N) :-
        write('整数を入力してください : '),
        get_line(Line),
        キーボードから読み込んだ整数検査(Line,N),!.
キーボードから読み込んだ整数(N) :- キーボードから読み込んだ整数(N).

キーボードから読み込んだ整数検査(Line,N) :-
        atom_to_term(Line,N,_),
        integer(N),!.
キーボードから読み込んだ整数検査(Line,N) :-
        write_formatted('読み込んだ %t から整数は得られませんでした。再入力をお願いします。\n',[Line]),
        fail.