Форум программистов, компьютерный форум, киберфорум
Prolog
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.82/11: Рейтинг темы: голосов - 11, средняя оценка - 4.82
16 / 16 / 9
Регистрация: 16.03.2012
Сообщений: 437
1

Список действий на выходе из рекурсии

16.04.2018, 19:17. Показов 2028. Ответов 9
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый день!

Как правильно "допилить" программу чтобы на выходе из рекурсии показывался список состояний которые были задействованы?
Изначально задача звучит так: Ограбить офис: место вскрытия сейфа - офис, место хранения комбинации от сейфа - спальня директора в его частном доме, место начала "игры" - подвал ресторана.



Prolog
1
2
3
4
5
6
7
8
9
10
11
12
%state(place, havekey, notrobbed)
 
move(state(office, safekey, notrobbed),
    open,
    state(office, safekey, robbed)).
move(state(P1, P1, Y),
    walk(P1,P2),
    state(P2, P2, Y)).
victory(state(_, _, robbed),[]).
victory(State1, [H|T]):- 
    move(State1, H, State2),
    victory(State2, T).
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
16.04.2018, 19:17
Ответы с готовыми решениями:

Не сохраняется число при выходе из рекурсии
Хотел бы узнать, как решить такую проблему: метод много раз рекурсивно вызывается и прибавляет к...

Выбор действий при выходе из формы
select тбл1 locate for переменные if found() vb_dey=messageb("Вы действительно хотите...

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

Список футбольных команд. На выходе должна получиться окончательная турнирная таблица
Задача: Дан список футбольных команд и очки, которые каждая команда заработала. На выходе должна...

9
Фрилансер
3705 / 2077 / 567
Регистрация: 31.05.2009
Сообщений: 6,683
17.04.2018, 06:26 2
Эта программа вообще не будет работать.
Как минимум, должен быть список доступных мест - иначе не будет работать walk
Кроме того, нет операции взятия ключа.

Посмотрите решение аналогичной задачи - Ваша даже проще: Не знаю как запустить программу
1
16 / 16 / 9
Регистрация: 16.03.2012
Сообщений: 437
17.04.2018, 10:03  [ТС] 3
Black Fregat, спасибо. Попробую разобраться.
0
Фрилансер
3705 / 2077 / 567
Регистрация: 31.05.2009
Сообщений: 6,683
17.04.2018, 10:16 4
SlashX6, не получится - выкладывайте попытки, будем помогать
0
1 / 1 / 0
Регистрация: 18.05.2019
Сообщений: 6
03.01.2020, 15:02 5
Добрый день форумчане!

Выручайте, помогите допилить программу .
Написал эту программу, (в пролог не проверял) преподаватель забраковал, непойму где я , что не учел или где ошибка.
Вот мой код:

Prolog
1
2
3
4
5
6
7
8
9
10
11
12
% Ограбить офис компании: 
% место вскрытия сейфа - офис,
% место хранения комбинации от сейфа - спальня директора в его частном доме,
% State1 место начала "игры" - "подвальчик" (ресторан сомнительного качества)
 
state(v_restoran,net_kombinacii,neograblen) % Start igri
canrob(state(_,_,ograblen)).                % Okon4nije sejf ograblen
 
canrob( state1 ) :- move (state1 ,move ,state2 ) , canrob(state2).
move(state(_,net_kombinacii,neograblen) , takekomb , state(_,est_kombinacia,neograblen) ).
move(state(v_office,est_kombinacia,neograblen) , rob , state(v_office,est_kombinacia,ograblen) ).
move(state(Pos1,net_kombinacii,neograblen) , walk , state(Pos2,net_kombinacii,neograblen) ).
0
794 / 598 / 156
Регистрация: 07.10.2013
Сообщений: 1,327
03.01.2020, 15:34 6
Цитата Сообщение от Alanen Посмотреть сообщение
в пролог не проверял)
круто
0
1 / 1 / 0
Регистрация: 18.05.2019
Сообщений: 6
03.01.2020, 15:42 7
arlat, Мне главное, чтоб понравилось преподавателю, сам он не указывает на конкретную ошибку.
0
1 / 1 / 0
Регистрация: 18.05.2019
Сообщений: 6
05.01.2020, 16:23 8
Prolog
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
% Ограбить офис компании: 
% место вскрытия сейфа - офис,
% место хранения комбинации от сейфа - спальня директора в его частном доме,
% State1 место начала "игры" - "подвальчик" (ресторан сомнительного качества)
% (v_restoran,at_home,v_office)  
% ( net_kombinacii, est_kombinacia)
% (neograblen, ograblen)
 
state(v_restoran,net_kombinacii,neograblen). % Start igri
 
canrob(state(_,_,ograblen)).                % Okon4nije sejf ograblen
canrob( State1 ) :- move(State1 ,_ ,State2) , canrob(State2).
 
move(state(at_home,net_kombinacii,neograblen) , takekomb , state(at_home,est_kombinacia,neograblen) ). % vzjatije kombinacii
move(state(v_office,est_kombinacia,neograblen) , rob , state(v_office,est_kombinacia,ograblen) ). % Ograblenije
move(state(P1,K,S), walk(P1,P2), state(P2,K,S)).  % Smena lokacii
0
0 / 0 / 0
Регистрация: 20.03.2018
Сообщений: 10
21.09.2020, 14:55 9
Приветствую всех. код заработал, а то нет ответа от автора.
0
1 / 1 / 0
Регистрация: 18.05.2019
Сообщений: 6
21.09.2020, 15:34 10
Данный код заработал.

Prolog
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
% Ограбить офис компании: 
% место вскрытия сейфа - офис,
% место хранения комбинации от сейфа - спальня директора в его частном доме,
% State1 место начала "игры" - "подвальчик" (ресторан сомнительного качества)
% (v_restoran,at_home,v_office)  
% ( net_kombinacii, est_kombinacia)
% (neograblen, ograblen)
 
state(v_restoran,net_kombinacii,neograblen). % Start igri
 
canrob(state(_,_,ograblen)).                % Okon4nije sejf ograblen
canrob( State1 ) :- move(State1 ,_ ,State2) , canrob(State2).
 
move(state(at_home,net_kombinacii,neograblen) , takekomb , state(at_home,est_kombinacia,neograblen) ). % vzjatije kombinacii
move(state(v_office,est_kombinacia,neograblen) , rob , state(v_office,est_kombinacia,ograblen) ). % Ograblenije
move(state(P1,K,S), walk(P1,P2), state(P2,K,S)).  % Smena lokacii
1
21.09.2020, 15:34
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
21.09.2020, 15:34
Помогаю со студенческими работами здесь

Вывести список на экран до и после выполнения указанных действий
Буду очень благодарен в помощи.

Нельзя зайти в BIOS/UEFI, поскольку открывается неполный список действий по управлению компьютером
При входе в "Изменения параметров компьютера" -> "Общие" -> "Перезагрузить сейчас" с Lenovo G505s...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru