このディレクトリの索引
#  出典: C/C++言語の宿題片付けます 132代目 #354 
#  [1] 授業単元: プログラミング実習 
#  [2] 問題文(含コード&リンク): 
#  (1)http://ime.nu/kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10173.txt 
#  [1] 授業単元: プログラミング実習 
#  [2] 問題文(含コード&リンク): 
#  (1)http://ime.nu/kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10173.txt 
# 実行結果が次のようになるように、九九の表を、for文の二重ループを用いて作成しなさい。 
# 
# ***table of kuku *** 
# 
#  |  1  2  3  4  5  6  7  8  9 
# ----------------------------- 
# 1|  1  2  3  4  5  6  7  8  9 
# 2|  2  4  6  8 10 12 14 16 18 
# 3|  3  6  9 12 15 18 21 24 27 
# 4|  4  8 12 16 20 24 28 32 36 
# 5| 
# 省略 
#  | 
#  | 
# 9|  9 18 27 36 45 54 63 72 81 

九九表示 :-
    write(' |  1  2  3  4  5  6  7  8  9\n-----------------------------\n'),
    九九表示(1,1).

九九表示(9,10) :- nl,!.
九九表示(M,10) :- nl,succ(M,M2),九九表示(M2,1).
九九表示(M,1) :-
    writef('%t|%2r ',[M,M]),
    九九表示(M,2).
九九表示(M,N) :-
    X is M * N,
    writef('%2r ',[X]),
    succ(N,N2),
    九九表示(M,N2).