このディレクトリの索引
http://pc12.2ch.net/test/read.cgi/tech/1276810079/595
#  [1] 授業単元:プログラミング演習 
#  Q1. 問題文:4つの整数を入力し、それらを要素とする行列を求め、その値を以下のような 
#  形式で表示するプログラムを作成せよ。 
#   
#  例 100 20 30 40と入力すれば 
#    | 100 20 | =3400 
#      |  30 40 |          と表示される 
#   
#  Q.2ディスカウントストアでどの商品でも5個以上買えば1割引、10個以上で2割引、20個以上で 
#  4割引となっていた。キーボードから買う商品の単価と個数を入力し、合計金額を計算するプログラミングを 
#  作成せよ。 
#   

'4つの整数を入力し、それらを要素とする行列を求め、行列とその値を表示する' :-
        get_split_line([' ',','],[A,B,C,D]),
        正方行列の行列式の値([[A,B],[C,D]],_値),
        write_formatted('  |%3d %3d| = %t\n',[A,B,_値]),
        write_formatted('  |%3d %3d|\n',[C,D]).

正方行列の行列式の値(_正方行列,_行列式の値) :-
        ガウス行列に変形(_正方行列,X,Y),
        '行列式|C|の値'(X,Z1),
        ならびの積(Y,Z2),
        _行列式の値 is Z1 // Z2.

ならびの積([A],A) :- !.
ならびの積([A|R],X) :-
        ならびの積(R,Y),
        X is A * Y.

'行列式|C|の値'(_行列,_値) :-
        length(_行列,Len),
        findall(U,(for(1,N,Len),list_nth(N,_行列,_行),list_nth(N,_行,U)),L),
        ならびの積(L,_値).