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

Почему не работает member

04.05.2014, 23:02. Показов 660. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Помогите отладить код. Почему-то не работает member. Вот на всякий случай задание
Дана плоская страна и в ней n городов. Нужно соединить все города телефонной связью так, чтобы общая длина телефонных линий была минимальной.
Уточнение задачи. В задаче речь идет о телефонной связи, т.е. подразумевается транзитивность связи: если i-й город связан с j-ым, а j-ый с k-ым, то i-й связан с k-ым.
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
43
44
45
46
47
48
49
domains
list=integer*
i=integer
predicates
sortrast (list, list,list) 
city (list,list,list)
search (integer,integer,list,list)
all(integer,list,list)
ins(integer,list,list)
minimum (list,list,list)   
clauses
minimum([],Z,Z):- !.
 
minimum([[X1,X2,_]|Y],Z1,Z2):- 
not(search(X1,X2,Z1,[X1])),!,
minimum(Y,[[X1,X2]|Z1],Z2). 
 
minimum([_|Y],Z1,Z2):- minimum(Y,Z1,Z2). %ïðîïóñòèòü ðåáðî 
 
 
search(X1,X2,Y,_):- member([X1,X2],Y).
 
search(X1,X2,Y,_):- member([X2,X1],Y).
 
search(X1,X2,Y,Z):- member([X1,X3],Y), 
not(member(X3,Z)), search(X3,X2,Y,[X3|Z]).
 
search(X1,X2,Y,Z):- member([X3,X1],Y), 
not(member(X3,Z)), search(X3,X2,Y,[X3|Z]).
 
% ðåàëèçóåò âñòàâêó â ñïèñîê (ñ ñîðòèðîâêîé)
%
% L1 - ñïèñîê, X - ýëåìåíò, à L2 - ðåçóëüòàò
ins(X,[],[X]).
 
ins([X1,X2,R1],[[Y1,Y2,R2]|L],[[X1,X2,R1]|[[Y1,Y2,R2]|L]]):- R1<R2,!.
ins(X,[Y|L1],[Y|L2]):- ins(X,L1,L2).
 
 
sortrast([],Y,Y). sortrast([X|L],Y1,Y3):- ins(X,Y1,Y2), sortrast(L,Y2,Y3).
 
 
city([X|L],Y,Z):- sortrast(Y,[],Y1), minimum(Y1,[],Z), all(X,L,Z).
 
 
all(_,[],_).
all(X,[Y|L],Z):- search(X,Y,Z,[X]),!,all(X,L,Z).
goal
city([1],[1],Z),write(Z).
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
04.05.2014, 23:02
Ответы с готовыми решениями:

задача с предикатом member не работает как надо
Приветствую всех участников форума! Очень надеюсь на вашу помощь: Написал программу а она выводит...

Почему возникает ошибка Call to a member function fetch() on boolean ?
Здравствуйте! Подскажите, почему может возникать ошибка Call to a member function fetch() on...

Invalid use of member in static member function
Здравствуйте! У меня есть класс: class foo{ public: foo(); ~foo(); int m_number;

Не работает $db->query(); // Call to a member function Query() on a non-object in
Только приступил к ООП, поэтому очевидно наличие простых ошибок. Вот код, который при запуске...

2
Фрилансер
3705 / 2077 / 567
Регистрация: 31.05.2009
Сообщений: 6,683
05.05.2014, 02:14 2
Цитата Сообщение от LosTSamara Посмотреть сообщение
Почему-то не работает member
Скорее всего, в используемом Вами Прологе member не реализован. Напишите его сами, это два простейших правила.
1
0 / 0 / 1
Регистрация: 07.11.2012
Сообщений: 38
12.05.2014, 21:04  [ТС] 3
а кто-нибудь может попробовать отладить код,а то я уже столько раз пробовал, вечно ошибки вылезают и ничего не могу поделать
0
12.05.2014, 21:04
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
12.05.2014, 21:04
Помогаю со студенческими работами здесь

Почему смена текста работает только один раз? Что неправильно в коде и почему?
Нужно чтобы при щелчке мыши на поверхности кнопки текст метки Label изменялся на текст окна...

Почему выводится в виде таблицы и почему не работает сортировка
почему выводится в виде таблицы? почему не работает сортировка? и как туда можно вставить классы...

Ноутбук работает только с Wi Fi роутера дома, в кафе не работает и везде. Почему?
Подскажите пожалуйста, почему у меня ноутбук с виндой 7, работает вай фай только дома с роутера. А...

Не работает изменение, не могу понять почему, Update не работает, ошибку выдает
Помогите, изменение с помощью button string u =...


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

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

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