平面内の点の名前と座標は、点 (A、X、Y) として指定できます。
point(a, 13, 47)
この関係を Prolog 言語で10 点 [ など ] 定義してデータベースを作成します。
これらの点のうち 3 つが三角形を定義するため、これらの三角形をリストするルールを作成します。
三角形の中で最大の周囲長を持つ三角形を特定して、画面に印刷するルールを作成します。
関係とルールを含むプログラム リスト、三角形のリスト、および周囲が最大の三角形を印刷しました。
nokta(a, 3,1).
nokta(b, 6,2).
nokta(c, 7,1).
nokta(d, 9,1).
nokta(e, 6,3).
nokta(f, 4,3).
nokta(g, 9,3).
nokta(h, 13, 47).
nokta(i, 15, 49).
istriangle(A, B, C) :-
A > 0 ,
B > 0 ,
C > 0 ,
A + B >= C ,
A + C >= B ,
B + C >= A .
calculate_the_perimeter_triangle(P1,P2,P3,AB,AC,BC,S) :-
nokta(P1, X1, Y1),
nokta(P2, X2, Y2),
nokta(P3, X3, Y3),
dif(P1, P2),
dif(P2, P3),
dif(P1, P3),
\+ (X1 == X2, X2 == X3, X1 == X3),
\+ (Y1 == Y2, Y2 == Y3, Y1 == Y3),
%IABI = √((x2 – x1) ² + (y2 – y1) ² )
AB is sqrt((X2-X1)^2 + (Y2-Y1)^2),
%IACI = √((x3 – x1) ² + (y3 – y1) ² )
AC is sqrt((X3-X1)^2 + (Y3-Y1)^2),
%IBCI = √((x3 – x2) ² + (y3 – y2) ² )
BC is sqrt((X3-X2)^2 + (Y3-Y2)^2),
S is AB + AC + BC,
AB > 0 ,
AC > 0 ,
BC > 0 .
calculate_perimeter_triangle(N1,N2,N3) :-
calculate_the_perimeter_triangle(X,Y,Z,N1,N2,N3,S),
istriangle(N1,N2,N3),
write(S - ' Bu koordinatlardan oluşan üçgen.'),
nl,
fail.
三角形の周囲を取得しましたが、三角形の周囲を取得できませんでした