Форум программистов, компьютерный форум, киберфорум
Prolog
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.57/7: Рейтинг темы: голосов - 7, средняя оценка - 4.57
0 / 0 / 0
Регистрация: 27.10.2015
Сообщений: 2

Построить список L2 индексов каталога, которым соответствуют отрицательные нечетные значения (SWI-Prolog)

18.10.2016, 23:55. Показов 1412. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток, уважаемые программисты.
Текст задания: Дан двоичный каталог Т1. Написать программу, которая строит
список L2 индексов каталога, которым соответствуют отрицательные нечетные значения. Запрос: r(T1, L2).
Сама задача не вызвала у меня никаких осложнений, проблема у меня появилась в объединении самих индексов в список L2.
Я попытался через append и только с анонимной переменной у меня было что-то, близкое к правде. Но, как видно из скрина, за ответ это не сойдет.
Искренне прошу вашей помощи, обращаюсь к вам в первый раз, очень надеюсь на вашу подсказку!
Prolog
1
2
3
4
5
6
tree(empty, L2).
tree(c(I,V,L,R), L2):-V<0, M is V mod 2, M>0,
                            write('Index: '), write(I),nl, 
                            write('Value: '), write(V), nl, 
                            tree(L,S),tree(R,S), append(S, [I], L1), append(L1, _, L2).
tree(c(I,V,L,R), L2):- tree(L, L2), tree(R, L2),!.
Миниатюры
Построить список L2 индексов каталога, которым соответствуют отрицательные нечетные значения (SWI-Prolog)  
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
18.10.2016, 23:55
Ответы с готовыми решениями:

Построить двоичный каталог T2, используя пары с неотрицательными индексами из каталога Т1. SWI Prolog
Помогите, пожалуйста, с задачей. Никак не могу с этими индексами разобраться. Дан двоичный каталог Т1. Написать программу, которая...

Удалить из списка все нечетные числа (SWI Prolog)
Собственно, задачка: Задан числовой список. Удалить из него все непарные числа.

SWI Prolog простой числовой список
Удалить из списка все элементы, с индексами кратными 3.

2
0 / 0 / 0
Регистрация: 27.10.2015
Сообщений: 2
19.10.2016, 01:44  [ТС]
Ребят, я справился сам
Кому вдруг надо, внизу моя работа
Prolog
1
2
3
4
5
6
7
8
9
10
tree(empty, _).
tree(c(I,V,L,R), L2):-V<0, 
                            M is V mod 2, M>0,
                            write('Index: '), write(I),nl, 
                            write('Value: '), write(V), nl, 
                            tree(L,_),tree(R,_),
                            append(_,[I],L1),append(L1,_,L2).
tree(c(_,_,L,R), L2):- tree(L, L2), tree(R, L2),!.
 
treeS(T,L2):-tree(T,L1), append(L1, [], L2),!.
Миниатюры
Построить список L2 индексов каталога, которым соответствуют отрицательные нечетные значения (SWI-Prolog)  
0
Фрилансер
 Аватар для Black Fregat
3709 / 2083 / 567
Регистрация: 31.05.2009
Сообщений: 6,683
19.10.2016, 13:37
Tusla, если честно, просто ужасно..

Пойдём с конца. Какой глубинный смысл Вы закладываете в эту строчку:
Prolog
1
treeS(T,L2):-tree(T,L1), append(L1, [], L2),!.
Что должно измениться от дописывания к списку пустого списка?

Далее вверх. Запись
Prolog
1
tree(c(_,_,L,R), L2):- tree(L, L2), tree(R, L2),!.
неправильная. Вам нужно было получить разные списки для левого и правого поддеревьев, а потом сцепить результат. Что Вы вместо этого написали - комментировать не буду..

Далее вверх. Запись
Prolog
1
2
                            tree(L,_),tree(R,_),
                            append(_,[I],L1),append(L1,_,L2).
лично мне представляется, по меньшей мере, странной. Зачем тут анонимные переменные? Неужели это у Вас работает? Должно быть примерно так:
Prolog
1
2
                            tree(L,LL),tree(R,LR),
                            append(LL,[I],L1),append(L1,LR,L2).
Наконец, продолжает удивлять Ваше желание всюду использовать анонимную переменную. Запись
Prolog
1
tree(empty, _).
неправильная. Вам нужно было написать результат явно:
Prolog
1
tree(empty, []).
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
19.10.2016, 13:37
Помогаю со студенческими работами здесь

Разбить строку на список символов [SWI Prolog]
Здравствуйте. Подскажите каким образом можно реализовать предикат fronttoken из Visual prolog на Swi prolog. Вообще задача состоит в...

Создайте предикат, создающий список из четных цифр числа N (SWI-Prolog)
4.Создайте предикат, создающий список из четных цифр числа N. p4(N,):-N&lt;10,N mod 2=0,!. p4(N,):-N&lt;10,N mod 2=1,!. p4(N,):-X=N mod...

SWI Prolog: составить второй список из элементов первого так, чтобы элементы не повторялись
Прошу помогите!!! я перепробовала множество вариантов, но никак не могу исправить ошибку. Задача составить произвольный список (первый),...

Вывести номера индексов массива, содержащих отрицательные значения
Дан указатель на массив из 10 указателей типа int. Массив проинициализируйте самостоятельно. Вывести номера индексов массива, чьи элементы...

Как переделать программу написанную на Turbo-Prolog в SWI-Prolog?
Ребята подскажите пожалуйста как переделать эту программу написанную на Turbo-Prolog в SWI-Prolog? domains i=integer il=i* ...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это дополнительная запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru