Поиск:

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


Новичок



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

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



Всем привет! Есть программа - Задание: определить длину (число ветвей) пути от корня дерева до ближайшей вершины с заданным значением, если такая вершина отсутствует, ответ- "-1"
Вот код:

domains
    list=integer*.
    tree=der(tree,integer,tree);
    nil.    
predicates
        inside(integer,tree,list).
    add(list).
    derevo(list,tree,integer,list).
    create_kor_der(list,tree).
    konk(list,list,list).
    dobav(tree,integer,tree).
    del(list,list).
    count(list,integer,integer).        
clauses
    add([H|T]):-readint(H),H<>0,add(T),!.
    add([]).
    del([_|T],T).
    konk([],L,L).
    konk([X|L1],L2,[X|L3]):-konk(L1,L2,L3).
    dobav(nil,X,der(nil,X,nil)).
    dobav(der(L,X,R),X,der(L,X,R)).
    dobav(der(L,Kor,R),X,der(L1,Kor,R)):-
        Kor>=X,
        dobav(L,X,L1).
    dobav(der(L,Kor,R),X,der(L,Kor,R1)):-
        X>Kor,
        dobav(R,X,R1).
    create_kor_der([H1|_],T1):-
        dobav(nil,H1,T1).
    inside(X,der(_,X,_),[X]).
    inside(X,der(L,Kor,_),[Kor|Put]):-
        Kor>X,
        inside(X,L,Put).
    inside(X,der(_,Kor,R),[Kor|Put]):-
        X>Kor,
        inside(X,R,Put).        
    count([_|T],N,NN):-N1=N+1,count(T,N1,NN).
    count([],N,N).    
    derevo([H1|T1],Tr,E,Spisok):-
        H1=0,
        inside(E,Tr,Spisok);
        H1<>0,
        dobav(Tr,H1,Tr1),
        derevo(T1,Tr1,E,Spisok).
goal
    clearwindow,  
    write("Enter Tree:\n"),
    add(L),
    write(L),nl,
    konk(L,[0],L1),   
    create_kor_der(L1,T),    
    del(L1,L2),
    write("Enter Element:\n"),
    readint(E),
    derevo(L2,T,E,Spi),
    N=-1,
    count(Spi,N,NN),
    write("dlina min puti = ",NN);
    write("element ne naiden!").

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

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

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


 




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


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

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