このディレクトリの索引
http://pc12.2ch.net/test/read.cgi/tech/1269438098/608
#  【質問テンプレ】 
#  [1] 授業単元:プログラミング 
#  [2] 問題文(含コード&リンク): 
#    ランダムなアルファベットから成る、最大長255個の文字列を作成し、 
#    文字配列char a[256]へ代入、putsで表示せよ。 
#    作る文字列の長さははじめに入力すること。 
#  

'ランダムなアルファベットから成る、最大長255個の文字列を作成し表示する。作る文字列の長さははじめに入力すること。' :-
        '作る文字列の長さははじめに入力すること'(N),
        'ランダムなアルファベットから成る、最大長255個の文字列を作成し'(N,L),
        表示する(L),!.

'作る文字列の長さははじめに入力すること'(N) :-
        催促付き整数入力('文字列の長さ(255以下)を整数で入力してください : ',N),
        N > 0,
        N =< 255,!.
'作る文字列の長さははじめに入力すること'(N) :-
        write('入力された値は整数でないか範囲(0-255)から外れています\n'),
         '作る文字列の長さははじめに入力すること'(N).

'ランダムなアルファベットから成る、最大長255個の文字列を作成し'(0,[]) :- !.
'ランダムなアルファベットから成る、最大長255個の文字列を作成し'(N,[A|R]) :-
        M is random mod 65536,
        アルファベット(A,M),
        N1 is N - 1,        
        'ランダムなアルファベットから成る、最大長255個の文字列を作成し'(N1,R),!.
'ランダムなアルファベットから成る、最大長255個の文字列を作成し'(N,X) :-
        'ランダムなアルファベットから成る、最大長255個の文字列を作成し'(N,X).

アルファベット(A,N) :- char_code(A,N).

表示する([]) :- !.
表示する([A|R]) :- write(A),表示する(R).