Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Не получается вернуть значение 
:(
    Опции темы
dimichn
Дата 4.1.2010, 21:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 4.1.2010

Репутация: нет
Всего: нет



Задача: найти список изолированых вершин.
Наработки:
Код

get_isol([X|T],V,R):-
         write(X),nl,write(V),nl,write(R),nl,
         member(X,V),!,select(X,V,R1),get_isol(T,R1,R2), R is R2.
select(X,[X|T],T).
select(X,[H|T],[H|T1]):-
         select(X,T,T1).

Выполняется:
Цитата

JIP:-get_isol([b, g, f, c, e, d],[a, b, c, d, e, f, g, h],R).
b
[a, b, c, d, e, f, g, h]
_7733139
g
[a, c, d, e, f, g, h]
_7733139
f
[a, c, d, e, f, h]
_7733139
c
[a, c, d, e, h]
_7733139
e
[a, d, e, h]
_7733139
d
[a, d, h]
_7733139
No

Как заставить работать правильно? Может можно как-то по другому?
PM MAIL   Вверх
dimichn
Дата 5.1.2010, 03:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 4.1.2010

Репутация: нет
Всего: нет



Силами поиска решение такое получилось:
Код

edges([b-g,b-c,b-e,g-f,f-c,e-d]).
vertecies([a,b,c,d,e,f,g,h]).
s([h,a,f,g,w,n,s,a,j,d,m,d,e,h]).
%********************Works

%extracting vertecies witout dublicats
extract_vert([],[]).
vertex(G,L):-
         extract_vert(G,L1),
         remove1(L1,L).
extract_vert([X-Y|T],[X,Y|T1]):-
         extract_vert(T,T1).

%removing dublicats
remove1([], []).
remove1([A|L], Res):- 
         member(A, L), 
         !, 
         remove1(L, Res).
remove1([A|L], [A|Res]):- 
         remove1(L, Res).


%getting isolated vertecies
diff([],_,[]).
diff([X|M1],M2,[X|M]):- 
         not(member(X,M2)),
         !,
         diff(M1,M2,M).
diff([_|M1],M2,M):-
         diff(M1,M2,M).
%/*********
get_solution(G,R):-
         vertex(G,L),vertecies(V),diff(V,L,R).

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума Prolog
Void
  • Пожалуйста, создавайте темы с содержательными названиями.
  • Уважаемые учащиеся, здесь всегда рады помочь Вам, но не делать за Вас вашу работу. У вас гораздо больше шансов получить помощь, если Вы приложите усилия и поделитесь с нами проблемами и результатами. В противном случае добро пожаловать в раздел Центр Помощи.
  • Получив ответ на интересующий Вас вопрос, не забудьте пометить его как решённый.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Void.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Prolog | Следующая тема »


 




[ Время генерации скрипта: 0.0389 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.