0 / 0 / 0
Регистрация: 27.04.2016
Сообщений: 2
1

Структуры в прологе

19.10.2016, 16:18. Показов 3050. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Помогите пожалуйста решить задачу в турбо прологе - Найти все отрезки, которые при вертикальном параллельном перемещении совпадают с одной из сторон треугольника. Реализовать с помощью структур. Пролог начал изучать недавно и не имею представления как решать эту задачу. Заранее спасибо.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
19.10.2016, 16:18
Ответы с готовыми решениями:

3 задачи на структуры данных в прологе
Задание 1, списки. Под заданиями приведены примеры для проверки решений. Рекомендуется во всех...

Задачи на Прологе
Люди,ситуация следующая. Изучаем с ребятами в институте «Основы искусственного интеллекта» (из...

Задачи на прологе
Аксиоматизируйте предложенные области знаний. Формируемая вами система аксиом должна быть...

Меню на прологе
СОРТИРОВКА ВСТАВКОЙ: domains list=integer* predicates insert_sort (list, list) insert...

1
0 / 0 / 0
Регистрация: 27.04.2016
Сообщений: 2
29.10.2016, 15:01  [ТС] 2
сам решил. вот код кому надо. предусмотрен ввод структур с клавиатуры


Prolog
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
domains
point=p(real,real)
interval=i(point,point)
otrlist=interval*
 
predicates
otrezok(interval)
storona(interval)
parallel(interval,interval)
list1(otrlist)
addotr(otrlist,otrlist)
checkotr(otrlist,otrlist)
readotr(interval)
runo(otrlist)
 
clauses
 
%--------Data Base--------- 
otrezok(i(p(-1,-1),p(1,1))).
otrezok(i(p(2,2),p(4,4))).
otrezok(i(p(1,-1),p(-1,-1))).
storona(i(p(0,0),p(2,2))).
storona(i(p(0,0),p(2,0))).
storona(i(p(2,0),p(2,2))).
 
%--------------Proverka na parallelnost`-----------------
parallel(i(p(X1,Y1),p(X2,Y2)),i(p(X3,Y3),p(X4,Y4))):-X3-X1=X4-X2,Y3-Y1=Y4-Y2.
parallel(i(p(X1,Y1),p(X2,Y2)),i(p(X3,Y3),p(X4,Y4))):-X4-X1=X3-X2,Y4-Y1=Y3-Y2.
 
%--------------BBoD otrezka c Klaviaturi----------------------------
list1(L1):- findall(X, otrezok(X), L1).
addotr(L1, L2):- write("Dobavit eche otrezok? (y/n)"), readchar(Ch), Ch = 'y', !, nl, readotr(Z), addotr([Z | L1], L2).
addotr(L, L):-readchar(Ch),Ch='n',!,nl.    
readotr(i(p(X1,Y1),p(X2,Y2))):- write("X1 = "), readint(X1), write("Y1 = "), readint(Y1), nl, write("X2 = "), readint(X2), write("Y2 = "), readint(Y2), nl,!.
readotr(Z):- nl, write("Error! Repeat!"), readchar(_), nl, nl, readotr(Z).
 
%-------Proverka Bcex OTpe3KOB Ha parallelnost` co CToponami Tpeugolnika-----------
checkotr([], []).                                                            
checkotr([Tr1 | L1], [Tr1 | L2]):- storona(A),parallel(Tr1,A), !, checkotr(L1, L2).
checkotr([_ | L1], L2):- checkotr(L1, L2).
 
runo(A):-list1(L1),addotr(L1,L2),checkotr(L2,A).
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
29.10.2016, 15:01
Помогаю со студенческими работами здесь

3 задачке на прологе
Решите мне задачьки на прологе пожалуйста.. Создайте предикат, который будет находить...

Помощь в прологе
/* файл family.pro */ predicates nondeterm male(symbol) /*мужчина(кто)*/ nondeterm...

Рекурсия на Прологе
Помогите написать программу на прологе. С помощью рекурсии. Даны набор элементов багажа разного...

Меню на прологе
Нужно создать меню на turbo prolog 2.0. Вообще задача решена, но не могу создать меню.......


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru