このディレクトリの索引
http://toro.2ch.net/test/read.cgi/tech/1357748713/586
#  [1] 授業単元: プログラミングC 
#  [2] 問題文(含コード&リンク): 
#  キーボードから半角英数で文字列を入力し、英字については大文字を小文字に、小文字を大文字にするプログラムを作成せよ。 
#   
#  実行例 文字列入力 :AbCdEfG123 
#      変換文字列 :aBcDeFg123 
#  

'キーボードから半角英数で文字列を入力し、英字については大文字を小文字に、小文字を大文字にする' :-
        rawmode,
        'キーボードから半角英数で文字列を入力し、英字については大文字を小文字に、小文字を大文字にする',
        norawmode.

'キーボードから半角英数で文字列を入力し、英字については大文字を小文字に、小文字を大文字にする' :-
        repeat,
        get_char(_文字),
        文字を変換して(_文字,_変換された文字),
        表示する(_変換された文字),
        _文字 = '\n'.

文字を変換して('\n','\n') :- !.
文字を変換して(_文字,_変換された文字) :-
        大文字(_文字),
        文字を変換して(_文字,['A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z'],[a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z],_変換された文字).
文字を変換する(_文字,_変換された文字) :-
        小文字(_文字),
        文字を変換して(_文字,[a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z],['A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z'],_変換された文字).

大文字(_文字) :-
        _文字 @>= 'A',
        _文字 @=< 'Z'.

小文字(_文字) :-
        _文字 @>= 'a',
        _文字 @=< 'z'.

文字を変換して(_文字,L1,L2,_変換された文字) :-
        nth1(_nth1,L1,_文字),
        nth1(_nth1,L2,_変換された文字).

表示する('\n') :- !.
表示する(_変換された文字) :-
        writef('%t',[_変換された文字]).