0

平面内の点の名前と座標は、点 (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.

三角形の周囲を取得しましたが、三角形の周囲を取得できませんでした

4

2 に答える 2