このディレクトリの索引
#  [1] 授業単元:C言語 
#  [2] 問題 http://ime.nu/codepad.org/yV0KrZox 
#  
#  問題4
#  9行9列の九九の表のそれぞれの値を計算によって算出し、表示するプログラムを、二次元配列を用いて作成しなさい。
#  -------------------------------------------------------------------
#  1 2 3 4 5 6 7 8 9
#  2 4 6 8 10 12 14 16 18
#  3 6 9 12 15 18 21 24 27
#  4 8 12 16 20 24 28 32 26
#  5 10 15 20 25 30 35 40 45
#  6 12 18 24 30 36 42 48 54
#  7 14 21 28 35 42 49 56 63
#  8 16 24 32 40 48 56 64 72
#  9 18 27 36 45 54 63 72 81
#  --------------------------------------------------------------------
#  


'9行9列の九九の表のそれぞれの値を計算によって算出し、表示するプログラムを、二次元配列を用いて作成しなさい。' :-
length(LL,9),
findall(L,行の計算(LL,L),LL),
表示する(LL).


行の計算(LL,L) :-
nth1(M,LL,L),
length(L,9),
findall(X,列の計算(M,L,X),L).


列の計算(M,L,X) :-
nth1(N,L,_),
X is M * N.


表示する(LL) :-
write('-------------------------------------------------------------------\n'),
行を表示する(LL,R),
R = [],
write('-------------------------------------------------------------------\n').


行を表示する(LL,R) :-
append(_,[L|R],LL),
writef('%3r%3r%3r%3r%3r%3r%3r%3r%3r\n',L).