このディレクトリの索引
http://toro.2ch.net/test/read.cgi/tech/1354070278/7
#  [1] 授業単元:問題1:二次元配列 問題2:関数 
#  [2] 問題文(含コード&リンク): 
#  問題1:ファイルから入力した英小文字a-zの頻度のヒストグラムを 
#  出力するプログラムを書いてください。入力ファイルはプログラムファイルを使えば良い。 
#   
#  問題2:1文字を引数としてそれが小文字であれば大文字にして返し 
#  そうでなければそのまま文字を返す関数を作成しキーボードから 
#  文字入力としてこの関数の動作を確認せよ。 
#  [3.1] OS: windows vista 
#   [3.2] コンパイラ名とバージョン:visual studio2010 
#   [3.3] 言語: C言語  
#  [4] 期限: 11月30日  
#  [5]ポインタはやってません。宜しくお願いします 。 
# 
# 

'1文字を引数としてそれが小文字であれば大文字にして返し
そうでなければそのまま文字を返す関数を作成しキーボードから
文字入力としてこの関数の動作を確認せよ。'
        'キーボードから文字入力としてこの関数の動作を確認せよ'.

'キーボードから文字入力としてこの関数の動作を確認せよ' :-
        get_char(_文字),
        '1文字を引数としてそれが小文字であれば大文字にして返しそうでなければそのまま文字を返す'(_文字,_返された文字_1),
        to_upper(_文字,_返された文字_2),
        writef('キーボードから入力した文字 "%t",返された文字 "%t"\n',[_返された文字_1,_返された文字_2]).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

'1文字を引数としてそれが小文字であれば大文字にして返しそうでなければそのまま文字を返す'(_文字,_返す文字) :-
        to_upper(_文字,_返す文字).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

'1文字を引数としてそれが小文字であれば大文字にして返しそうでなければそのまま文字を返す'(_文字,_返す文字) :-
        それが小文字であれば大文字にして返しそうでなければそのまま文字を返す(_文字,_返す文字).

それが小文字であれば大文字にして返しそうでなければそのまま文字を返す(_文字,_返す文字) :-
        それが小文字であれば(_文字),
        大文字にして返し(_文字,_返す文字).
それが小文字であれば大文字にして返しそうでなければそのまま文字を返す(_文字,_返す文字) :-
        そうでなければ(_文字),
        _返す文字 = _文字.

それが小文字であれば(_文字) :-
        _文字 @>= 'a',
        _文字 @=< 'z'.

大文字にして返し(_文字,_返す文字) :-
        nth1(Nth,[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],_文字),
        nth1(Nth,['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'),!.

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

それが小文字であれば(_文字) :-
        char_code(_文字,_文字コード),
        between(97,122,_文字コード).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

それが小文字であれば(_文字) :-
        char_code(_文字,_文字コード),
        _文字コード >= 97,
        _文字コード =< 122.

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

大文字にして返し(_文字,_返す文字) :-
        小文字大文字(_文字,_大文字).

小文字大文字(a,'A').
小文字大文字(b,'B').
小文字大文字(c,'C').
小文字大文字(d,'D').
小文字大文字(e,'E').
小文字大文字(f,'F').
小文字大文字(g,'G').
小文字大文字(h,'H').
小文字大文字(i,'I').
小文字大文字(j,'J').
小文字大文字(k,'K').
小文字大文字(l,'L').
小文字大文字(m,'M').
小文字大文字(n,'N').
小文字大文字(o,'O').
小文字大文字(p,'P').
小文字大文字(q,'Q').
小文字大文字(r,'R').
小文字大文字(s,'S').
小文字大文字(t,'T').
小文字大文字(u,'U').
小文字大文字(v,'V').
小文字大文字(w,'W').
小文字大文字(x,'X').
小文字大文字(y,'Y').
小文字大文字(z,'Z').

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

大文字にして返し(_文字,_返す文字) :-
        char_code(_文字,_文字コード),
        _大文字の文字コード is _文字コード - 32,
        char_code(_返す文字,_大文字の文字コード),!.

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

'1文字を引数としてそれが小文字であれば大文字にして返しそうでなければそのまま文字を返す'(_文字,_返す文字) :-
        小文字大文字(_文字,_返す文字).

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