このディレクトリの索引
http://hibari.2ch.net/test/read.cgi/tech/1312201995/589
#  [1] 授業単元:プログラミング  
#  [2] 問題文(含コード&リンク):  
#  scanf により n を受け取り, 要素数 n の 1 〜 10 の値を持つ乱数配列を生成し表示するプログラムを作成せよ.  
#  ただし, 配列の要素を表示するときは一行につき 10 個ずつ表示するようにせよ. 
#   
#  

'n を受け取り, 要素数 n の 1 〜 10 の値を持つ乱数のならびを生成し表示する' :-
        'n を受け取り, 要素数 n の 1 〜 10 の値を持つならびを生成し'(L),
        表示する(L).

'n を受け取り, 要素数 n の 1 〜 10 の値を持つ乱数のならびを生成し'(L) :-
        'n を受け取り'(_n),
        '要素数 n の'(_n,L),
        '1 〜 10 の値を持つ乱数のならびを生成し'(L).

'n を受け取り'(_n) :-
        write('要素数を入力してください : '),
        get_integer(_n).        

'要素数 n の'(_n,L) :-
        length(L,_n).

'1 〜 10 の値を持つ乱数のならび生成し'(L) :-
        findall(N,(
                    append(_,[N|_],L),
                    '1 〜 10 の値を持つ乱数の'(N)),                    
                L).

'1 〜 10 の値を持つ乱数の'(N) :-
        '0 〜 9 の値を持つ乱数に1を加えて1 〜 10 の値とします(N).

'0 〜 9 の値を持つ乱数に1を加えて1 〜 10 の値とします'(N) :-
        '0 〜 9 の値を持つ乱数'(N_1),
        N is N_1 + 1.

'0 〜 9 の値を持つ乱数'(N_1) :-
        N_1 is random(10).

表示する(L) :-
        writef('%t\n',[L]).