Задание множества точек на плоскости - Prolog

Узнай цену своей работы

Формулировка задачи:

Доброго времени суток. Подскажите, пожалуйста, как задать случайное кол-во случайных точек в пространстве? И как потом выбрать самые крайние точки по часовой стрелке?

Решение задачи: «Задание множества точек на плоскости»

textual
Листинг программы
include("points.txt").
 
write_el([OX,OY]):-
    write(OX+" "+OY).
 
 
write_list(_,[]).
write_list(0,_).
write_list(COUNT,[X|T]):-
    COUNTNEW:=COUNT-1,
    write_el(X),nl,
    write_list(COUNTNEW,T).
 
 
?-findall([OX,OY],
(point(OX,OY);fail),FirstList),
write_list(24,FirstList).

Объяснение кода листинга программы

  1. Включается файл points.txt.
  2. Определяется процедура write_el, которая принимает два аргумента OX и OY и выводит их на экран через пробел.
  3. Определяется процедура write_list, которая принимает два аргумента COUNT и LIST. Если COUNT равно 0, то выводится пустой список. Если COUNT равно 1, то выводится первый элемент списка LIST. Если COUNT больше 1, то выводится первый элемент списка LIST, а затем вызывается процедура write_list с аргументами COUNT-1 и TAIL списка LIST.
  4. Определяется процедура findall, которая принимает два аргумента COLS и ROW и ищет все точки в файле points.txt. Если точка найдена, она добавляется в список FirstList. Если точка не найдена, вызывается процедура fail. Когда все точки найдены, вызывается процедура write_list с аргументами 24 и FirstList.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

12   голосов , оценка 3.75 из 5
Похожие ответы