Компьютерный форум
Правила
Вернуться   Компьютерный форум > Форум программистов > Языки программирования > Prolog
Перезагрузить страницу Помогите переделать задачу из Turbo Prolog в Visual Prolog 5
Ответ
 
Опции темы Опции просмотра
  (#1 (permalink)) Старый
imported_Anneta imported_Anneta вне форума
Новичок
 
Сообщений: 11
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 15.12.2010
Red face Помогите переделать задачу из Turbo Prolog в Visual Prolog 5 - 22.12.2010, 21:12

Имеется список, элементы которого – непустые бинарные деревья. Для каждого элемента списка выполнить преобразование дерева в список. В полученных списках заменить все элементы равные 0 на -1.

Есть решенная задача, но только на Turbo Prolog ссылка на решение. Если кому не сложно помогите пожалуйста ее переделать в Visual Prolog 5.

Заранее большое спасибо)

prolog Код:
do([],[]).
do([T|Ts],[L|Ls]):-
preorder(T,L1),
change(L1,L),
do(Ts,Ls).


preorder(nil,[]):-!.
preorder(t(nil,Root,nil),[Root]):-!.
preorder(t(L,Root,R), [Root|Ls]):-
preorder(L,LL),
preorder(R,LR),
conc(LL,LR,Ls).

change([],[]).
change([E|Es],[L|Ls]):-
(E = 0,!,L is -1;
L is E),
change(Es,Ls).

conc([],Ys,Ys).
conc([X|Xs],Ys,[X|Zs]):-conc(Xs,Ys,Zs).

что то я в этом коде вообще ни чего не понимаю...
Ответить с цитированием
  (#2 (permalink)) Старый
imported_Anneta imported_Anneta вне форума
Новичок
 
Сообщений: 11
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 15.12.2010
По умолчанию 22.12.2010, 22:23

Попробовала переделать, посмотрите пожалуйста...

prolog Код:
domains
    treetype = tree(integer, treetype); empty
    treelist = treetype*
    rlist = real*
predicates
determ change(treetype, integer)
determ do(treelist, rlist)
    preorder(rlist,rlist)
    conc(rlist,rlist,rlist)
   
clauses
do([],[]).
do([T|Ts],[L|Ls]):-
preorder(T,L1),
change(L1,L),
do(Ts,Ls).

preorder(nil,[]):-!.
preorder(t(nil,Root,nil),[Root]):-!.
preorder(t(L,Root,R), [Root|Ls]):-
preorder(L,LL),
preorder(R,LR),
conc(LL,LR,Ls).

change([],[]).
change([E|Es],[L|Ls]):-
( E=0,!,L is -1;
L is E),
change(Es,Ls).

conc([],Ys,Ys).
conc([X|Xs],Ys,[X|Zs]):-conc(Xs,Ys,Zs).

goal
do([t(t(nil,0,nil), 4, nil), t(t(nil,9,nil), 0, t(nil,10,nil)), t(t(nil,6,nil), 3, t(nil,0,nil))], List).

и ничего не получилось
Ответить с цитированием
  (#3 (permalink)) Старый
Винитарх Винитарх вне форума
Специалист
 
Аватар для Винитарх
 
Сообщений: 7,955
Сказал(а) спасибо: 2
Поблагодарили 302 раз(а) в 302 сообщениях
Регистрация: 01.03.2003
Адрес: Краснодар
По умолчанию 23.12.2010, 18:37

Visual Prolog Код:
domains    
treetype = t(treetype, integer, treetype); nil    
treelist = treetype*    
il = integer*
ill = il*
predicates
determ change(il, il)
determ do(treelist, ill)    preorder(treetype,il)    conc(il,il,il)    
goal
do([t(t(nil,0,nil), 4, nil), t(t(nil,9,nil), 0, t(nil,10,nil)), t(t(nil,6,nil), 3, t(nil,0,nil))], List).

clauses
do([],[]).
do([T|Ts],[L|Ls]):-preorder(T,L1),change(L1,L),do(Ts,Ls).
preorder(nil,[]):-!.
preorder(t(nil,Root,nil),[Root]):-!.
preorder(t(L,Root,R), [Root|Ls]):-preorder(L,LL),preorder(R,LR),conc(LL,LR,Ls).
change([],[]).
change([0|Es],[-1|Ls]):-!,change(Es,Ls).
change([E|Es],[E|Ls]):-change(Es,Ls).
conc([],Ys,Ys).
conc([X|Xs],Ys,[X|Zs]):-conc(Xs,Ys,Zs).
Ответить с цитированием
  (#4 (permalink)) Старый
imported_Anneta imported_Anneta вне форума
Новичок
 
Сообщений: 11
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 15.12.2010
По умолчанию 23.12.2010, 22:59

Большое спасибо
Ответить с цитированием
Ads
Ответ

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Перенос программ из {TurboProlog.....Visual Prolog 5.2} в Visual Prolog 7 imported_Jenny_ Prolog 30 25.03.2013 19:15
код из turbo prolog в visual prolog posleg Prolog 4 13.06.2011 00:33
крестики нолики на Visual Prolog 7.2 Помогите пожалуйста решить задачу! Дмитрий) Prolog 4 06.06.2011 17:52
помогите решить задачу на Visual Prolog 7.2 ПОЖАЛУЙСТА!!! Валёк Prolog 13 02.06.2011 01:24
БД на Turbo Prolog (помогите!!!) weir Prolog 1 27.12.2010 18:05
Помогите переделать программу из Turbo в SWI-PROLOG armoko Prolog 0 25.05.2010 13:46
Решить задачу (платно) - Turbo Prolog 2.0 imported_Axon Prolog 16 24.12.2009 23:44
Кто возьмется переписать маленькую программу с Turbo Prolog на Visual Prolog 5.0 (за плату) olik567 Prolog 4 07.10.2009 17:46
Кто возьмется переписать маленькую программу с Turbo Prolog на Visual Prolog 5.0 (за плату) Игоревна Задания за деньги 16 04.01.2008 17:20
Нужно решить задачу на TURBO-PROLOG Надюшка Prolog 6 12.10.2006 22:28
Как решить задачу на Visual Prolog Alexdouble Prolog 1 04.12.2004 09:33
Как переделать Prolog-D на Turbo-Prolog Anonymous Prolog 19 02.01.2004 20:05



Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.
Нardforum.ru - компьютерный форум и программирование, форум программистов