
Вопрос задан 02.01.2019 в 04:24.
Предмет Информатика.
Спрашивает Рубенко Степан.
Пролог. Создать предикат, находящий минимальное из значений, находящихся в листьях дерева Дмитрий
Фирсов Ученик (176), Вопрос открыт 6 минут назад Есть код для такого задания: Создать предикат, находящий минимальное из значений, находящихся в вершинах дерева. DOMAINS tree = e; tr(integer,tree,tree) PREDICATES tree_min(tree,integer) min(integer,integer,integer) CLAUSES min(X,Y,Z):- X min(_,Y,Y). tree_min(e,0). tree_min(tr(X,L,R),N):- tree_min (L,N1), tree_min (R,N2), min(X,N1,Z), min(Z,N2,Z1), N=Z1. Что нужно поменять, чтобы сделать получить код для задания, которое указано в заголовке моего вопроса?

Ответы на вопрос

Отвечает Щетинина Елизавета.
Ну типо так:
domains treetype = tree(integer, treetype, treetype); empty
predicates
max_t(treetype, integer)
min_t(treetype, integer)
max(integer,integer,integer)
min(integer,integer,integer)
clauses
max(M,N,N) :- N>=M, !.
max(M,N,M) :- M>=N, !.
min(M,N,N) :- N<=M, !.
min(M,N,M) :- M<=N, !.
max_t(tree(X,empty,empty),X) :- !.
max_t(tree(X,empty,R),Q) :- max_t(R,N), max(X,N,Q). max_t(tree(X,L,empty),Q) :- max_t(L,N), max(X,N,Q).
max_t(tree(X,L,R),Q) :- max_t(L,LM), max_t(R,RM), max(RM,LM,QM), max(X,QM,Q).
min_t(tree(X,empty,empty),X) :- !.
min_t(tree(X,empty,R),Q) :- min_t(R,N), min(X,N,Q). min_t(tree(X,L,empty),Q) :- min_t(L,N), min(X,N,Q).
min_t(tree(X,L,R),Q) :- min_t(L,LM), min_t(R,RM), min(RM,LM,QM), min(X,QM,Q).
domains treetype = tree(integer, treetype, treetype); empty
predicates
max_t(treetype, integer)
min_t(treetype, integer)
max(integer,integer,integer)
min(integer,integer,integer)
clauses
max(M,N,N) :- N>=M, !.
max(M,N,M) :- M>=N, !.
min(M,N,N) :- N<=M, !.
min(M,N,M) :- M<=N, !.
max_t(tree(X,empty,empty),X) :- !.
max_t(tree(X,empty,R),Q) :- max_t(R,N), max(X,N,Q). max_t(tree(X,L,empty),Q) :- max_t(L,N), max(X,N,Q).
max_t(tree(X,L,R),Q) :- max_t(L,LM), max_t(R,RM), max(RM,LM,QM), max(X,QM,Q).
min_t(tree(X,empty,empty),X) :- !.
min_t(tree(X,empty,R),Q) :- min_t(R,N), min(X,N,Q). min_t(tree(X,L,empty),Q) :- min_t(L,N), min(X,N,Q).
min_t(tree(X,L,R),Q) :- min_t(L,LM), min_t(R,RM), min(RM,LM,QM), min(X,QM,Q).


Топ вопросов за вчера в категории Информатика

Информатика 47

Информатика 33

Информатика 67

Информатика 18

Информатика 25

Информатика 563

Информатика 16
Последние заданные вопросы в категории Информатика
Предметы
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili