Ответ в теме: Расстояние между точками на Prolog

      Комментарии к записи Ответ в теме: Расстояние между точками на Prolog отключены
#2367

Расстояние между точками можно найти по теореме Пифагора, при этом гипотенуза прямоугольного треугольника является искомым расстоянием, а его катеты – разность соответствующих координат точек.

distance(point(APosX, APosY), point(BPosX, BPosY), Distance):-
  DeltaX is abs(APosX-BPosX),
  DeltaY is abs(APosY-BPosY),
  Distance is sqrt(DeltaX*DeltaX+DeltaY*DeltaY), !.

Для решения используются встроенные функции abs и sqrt, при это решение будет примерно одинаковым в SWI/ISO Prolog и Turbo/Visual Prolog.

Вложения: