このディレクトリの索引
http://toro.2ch.net/test/read.cgi/tech/1339338438/478
#  [1] 授業単元:C 
#  [2] 問題文(含コード&リンク): 
#  下記の実行結果のように、入力された文字列を構成している個々の文字が 
#  (1) 小文字の英字であるのか 
#  (2) 大文字の英字であるのか 
#  (3) 英字以外であるのか 
#  を判定するプログラムを作成せよ。 
#  文字列 input を構成する文字 input[loop] が文字列の終わりで無い事を検証するために、 
#  while(input[loop] != '\0') を用いてください。 
#   

'入力された文字列を構成している個々の文字が (1) 小文字の英字であるのか (2) 大文字の英字であるのか (3) 英字以外であるのかを判定する'(_文字列,_個々の文字,_判定) :-
        '入力された文字列を構成している個々の文字が(_文字列,_個々の文字),
        '(1) 小文字の英字であるのか (2) 大文字の英字であるのか (3) 英字以外であるのかを判定する'(_個々の文字,_判定).

入力された文字列を構成している個々の文字が(_文字列,_個々の文字) :-
        入力された文字列を(_文字列),
        構成している個々の文字が(_文字列,_個々の文字).

入力された文字列を(_文字列) :-
        write('文字列を入力してください : '),
        get_line(_文字列).

構成している個々の文字が(_文字列,_個々の文字) :-
        sub_atom(_文字列,_,1,_,_個々の文字).

'(1) 小文字の英字であるのか (2) 大文字の英字であるのか (3) 英字以外であるのかを判定する'(_個々の文字,小文字の英字) :-
        小文字の英字である(_個々の文字),!.
'(1) 小文字の英字であるのか (2) 大文字の英字であるのか (3) 英字以外であるのかを判定する'(_個々の文字,大文字の英字) :-
        大文字の英字である(_個々の文字),!.
'(1) 小文字の英字であるのか (2) 大文字の英字であるのか (3) 英字以外であるのかを判定する'(_個々の文字,英字以外) :-
        英字以外である(_文字).        

小文字の英字である(_文字) :-
        _文字 @>= 'a',
        _文字 @=< 'z'.

大文字の英字である(_文字) :-
        _文字 @>= 'A',
        _文字 @=< 'Z'.

英字以外である(_文字) :-
        \+(小文字の英字である(_文字)),
        \+(大文字の英字である(_文字)).