このディレクトリの索引

# 出典::C/C++の宿題片付けます 129代目 #450 # [1] 授業単元:プログラミング演習 # [2] 問題文(含コード&リンク): # 下に示す2 行3 列の行列a, b の差を求めて表示するプログラムを作成せよ. # # a = # ( # 6 3 4 # 5 1 2 # ) # b = # ( # 1 2 3 # 4 5 6 # ) a([[6,3,4],[5,1,2]]). b([[1,2,3],[4,5,6]]). '2 行3 列の行列a, b の差を求めて表示するプログラムを作成せよ.' :- '2 行3 列の行列a, b の'(_a,_b), '2 行3 列の行列の差を求めて表示する'(_a,_b). '2 行3 列の行列a, b の'(_a,_b) :- a(_a), b(_b). '2 行3 列の行列の差を求めて表示する'([[_a11,_a12,_a13],[_a21,_a22,_a23]],[[_b11,_b12,_b13],[_b21,_b22,_b23]]) :- '2 行3 列の行列の差を求めて'([[_a11,_a12,_a13],[_a21,_a22,_a23]],[[_b11,_b12,_b13],[_b21,_b22,_b23]],[[_c11,_c12,_c13],[_c21,_c22,_c23]]), 表示する([[_c11,_c12,_c13],[_c21,_c22,_c23]]). '2 行3 列の行列の差を求めて'([[_a11,_a12,_a13],[_a21,_a22,_a23]],[[_b11,_b12,_b13],[_b21,_b22,_b23]],[[_c11,_c12,_c13],[_c21,_c22,_c23]]) :- 一行目の差を取る(_a11,_a12,_a13,_b11,_b12,_b13,_c11,_c12,_c13), 二行目の差を取る(_a21,_a22,_a23,_b21,_b22,_b23,_c21,_c22,_c23). 一行目の差を取る(_a11,_a12,_a13,_b11,_b12,_b13,_c11,_c12,_c13) :- 一行一列目の差を取る(_a11,_b11,_c11), 一行二列目の差を取る(_a12,_b12,_c12), 一行三列目の差を取る(_a13,_b13,_c13). 二行目の差を取る(_a21,_a22,_a23,_b21,_b22,_b23,_c21,_c22,_c23) :- 二行一列目の差を取る(_a11,_b11,_c11), 二行二列目の差を取る(_a12,_b12,_c12), 二行三列目の差を取る(_a13,_b13,_c13). 一行一列目の差を取る(_a11,_b11,_c11) :- 差を取る(_a11,_b11,_c11). 一行二列目の差を取る(_a12,_b12,_c12) :- 差を取る(_a12,_b12,_c12). 一行三列目の差を取る(_a13,_b13,_c13) :- 差を取る(_a13,_b13,_c13). 二行一列目の差を取る(_a21,_b21,_c21) :- 差を取る(_a21,_b21,_c21). 二行二列目の差を取る(_a22,_b22,_c22) :- 差を取る(_a22,_b22,_c22). 二行三列目の差を取る(_a23,_b23,_c23) :- 差を取る(_a23,_b23,_c23). 差を取る(_1,_2,_3) :- _3 is _1 - _2. 表示する(_行列) :- writef('%w\n',[_行列]).