6 / 6 / 1
Регистрация: 03.06.2012
Сообщений: 73
1

диапазон нечетных элементов в дереве

14.05.2014, 20:25. Показов 1223. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Народ, прошу помощи. Задание было такое: Создайте предикат, подсчитывающий количество всех вершин данного дерева, значения которых принадлежат заданному диапазону. С этим справился
Кликните здесь для просмотра всего текста
Prolog
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
domains
i,N,Z=integer
tree=empty or tr(i,tree,tree)
predicates
tree_length(tree,N,i,i)
getCalc(i,i,i,i)
clauses
tree_length(empty,0,M,A).
tree_length(tr(V,L,R),N,M,A):-
tree_length(L,N1,M,A),
tree_Length(R,N2,M,A),
getCalc(V,ResV,M,A),
N=N1+N2+ResV,
write(" ",V,"--",N1,"+",N2,"+",ResV,"=",N),nl.
getCalc(V,C,M,A):-
V>=M,V<=A,C=1;C=0.
goal
clearwindow,
write("vvedite diapozon"),nl,
readint(M),readint(A),
tree_length(tr(2,tr(7,empty,empty),tr(3,tr(4,empty,empty),tr(1,empty,empty))),R,M,A),nl,
write("Kolichestvo vershin= ",R).

Теперь надо чтобы этот диапазон был из нечетных элементов. Помогите сделать. Нашел на форуме тему, но что-то туплю и не могу под дерево переделать. Вот ссылка Нечетные числа из заданного промежутка.

Добавлено через 2 часа 16 минут
Вот до чего дошел, но считает не полностью
Кликните здесь для просмотра всего текста
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
domains
i,N,Z=integer
tree=empty or tr(i,tree,tree)
predicates
tree_length(tree,N,i,i)
getCalc(i,i,i,i)
nech(i)
clauses
nech(V):-V mod 2=1.
tree_length(empty,0,A,B).
tree_length(tr(V,L,R),N,A,B):-
tree_length(L,N1,A,B),
tree_Length(R,N2,A,B),
nech(V),
getCalc(V,ResV,A,B),
N=N1+N2+ResV,
write(" ",V,"--",N1,"+",N2,"+",ResV,"=",N),nl OR 
tree_length(L,N1,A,B),tree_length(R,N2,A,B).
getCalc(V,C,A,B):-
V>=A,V<=B,C=1;C=0.
goal
clearwindow,
write("vvedite diapozon"),nl,
readint(A),readint(B),
tree_length(tr(2,tr(7,empty,empty),
tr(3,tr(4,empty,empty),tr(1,empty,empty))),R,A,B),nl,
write("Kolichestvo vershin= ",R).
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
14.05.2014, 20:25
Ответы с готовыми решениями:

Поиск количества совпадающих элементов в бинарном дереве
Здравствуйте. Нужно найти количество совпадающих элементов в бинарном дереве. Я написал следующие...

Если задаваемая пара элементов в дереве является соседними-поменять их местами
Помогите решить задачу: Если задаваемая пара элементов в дереве является соседними-поменять их...

Определение количества элементов, входящих в диапазон
Добрый день. Помогите, пожалуйста, разобраться с задачей. Необходимо определить количества...

Сумма положительных элементов в нечетных строках, и произведение элементов меньше 5 в нечетных столбцах матрицы
Сумма положительных элементов в нечетныйx строках, и произведение элементов меньше 5 в нечетных...

1
6 / 6 / 1
Регистрация: 03.06.2012
Сообщений: 73
15.05.2014, 23:06  [ТС] 2
Лучший ответ Сообщение было отмечено Taatshi как решение

Решение

Все оказалось намного проще чем я думал. Решение настолько простое и очевидное, что показалось мне неверным :-)
Вот как сделал:
Кликните здесь для просмотра всего текста
Prolog
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
domains
i,N,Z=integer
tree=empty or tr(i,tree,tree)
predicates
tree_length(tree,N,i,i)
getCalc(i,i,i,i)
clauses
tree_length(empty,0,M,A).
tree_length(tr(V,L,R),N,M,A):-
tree_length(L,N1,M,A),
tree_Length(R,N2,M,A),
getCalc(V,ResV,M,A),
N=N1+N2+ResV,
write(" ",V,"--",N1,"+",N2,"+",ResV,"=",N),nl.
getCalc(V,C,M,A):-
(V mod 2)=1,V>=M,V<=A,C=1;C=0.
goal
clearwindow,
write("vvedite diapozon"),nl,
write("min "),readint(M),write("max "),readint(A),
tree_length(tr(2,tr(7,empty,empty),tr(3,tr(4,empty,empty),tr(1,empty,empty))),R,M,A),nl,
write("Kolichestvo vershin= ",R).
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
15.05.2014, 23:06
Помогаю со студенческими работами здесь

Найти номера нечетных элементов одномерного массива, подсчитать количество нечетных элементов
Задача вроде пустяковая, но как-то не сходится. if a mod 2=0 then write(i); for i:=1 to 5 do...

Переставить элементы на четных местах и на нечетных, найти сумму нечетных элементов
1.Переставить элементы на четных местах и на нечетных. 2. 20 элементов и найти сумму нечетных...

Перемещение элемента в дереве элементов
Возникла проблема. Следующий jQuery код: if(!window) load_js(); ...

Добавление, удаление элементов в дереве
Сформировать массив записей, описывающих следующую таблицу:Фамилия, Адрес, N телефона. Удалить из...


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

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

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