このディレクトリの索引
http://toro.2ch.net/test/read.cgi/tech/1357748713/528
#  [1] 授業単元: C言語入門 
#  [2] 問題文(含コード&リンク): 
#  入力された数値の回数分だけ乱数を使ってコイン投げを行い, 
#  表裏が出る枚数をカウントして表示させるプログラム を作りなさい。 
#  

'入力された数値の回数分だけ乱数を使ってコイン投げを行い,表裏が出る枚数をカウントして表示させる' :-
        '入力された数値の'(_入力された数値),
        '数値の回数分だけ乱数を使ってコイン投げを行い,表裏が出る枚数をカウントして表示させる'(_入力された数値).

'入力された数値の'(_入力された数値) :-
        整数を得る(コイン投げをする回数,_入力された数値 > 0,_入力された数値).

'数値の回数分だけ乱数を使ってコイン投げを行い,表裏が出る枚数をカウントして表示させる'(_入力された数値) :-
        '数値の回数分だけ乱数を使ってコイン投げを行い,表裏が出る枚数をカウントして'(_入力された数値,0,0,_表が出た枚数,_裏が出た枚数),
        表示させる(_表が出た枚数,_裏が出た枚数).

'数値の回数分だけ乱数を使ってコイン投げを行い,表裏が出る枚数をカウントして'(0,_表が出た枚数,_裏が出た枚数,_表が出た枚数,_裏が出た枚数) :- !.
'数値の回数分だけ乱数を使ってコイン投げを行い,表裏が出る枚数をカウントして'(N,_表が出た枚数_1,_裏が出た枚数_1,_表が出た枚数,_裏が出た枚数) :-
        '乱数を使ってコイン投げを行い,表裏が出る枚数をカウントして'(_表が出た枚数_1,_裏が出た枚数_1,_表が出た枚数_2,_裏が出た枚数_2),
        N_1 is N - 1,
        '数値の回数分だけ乱数を使ってコイン投げを行い,表裏が出る枚数をカウントして'(N_1,_表が出た枚数_2,_裏が出た枚数_2,_表が出た枚数,_裏が出た枚数).

'乱数を使ってコイン投げを行い,表裏が出る枚数をカウントして'(_表が出た枚数_1,_裏が出た枚数_1,_表が出た枚数_2,_裏が出た枚数_2) :-
        '乱数を使ってコイン投げを行い'(_表,_裏),
        _表が出た枚数_2 is _表が出た枚数_1 + _表,
        _裏が出た枚数_2 is _裏が出た枚数_1 + _裏.

'乱数を使ってコイン投げを行い'(1,0) :-
        1 is random(2),!.
'乱数を使ってコイン投げを行い'(0,1).

表示させる(_表が出た枚数,_裏が出た枚数) :-
        writef('表が出た枚数 = %t, 裏が出た枚数 = %t\n',[_表が出た枚数,_裏が出た枚数]).