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

переделать небольшой код для турбо-пролога

14.11.2013, 20:14. Показов 715. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
более менее разобрался как писать в турбо-прологе(даже 2 простенькие задачки со списками решил), и хотел бы разобраться с этим кодом.. помогите пожалуйста переделать для турбо
Prolog
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
решить:-старт(S),решить(S,[S],R),reverse(R,P),write(P).
решить(S,R,R):-цель(S),!.
решить(S,P,R):-ход(S,Z),not(member(Z,P)),решить(Z,[Z|P],R).
старт(s(3,3,л,0,0)).
цель(s(_,_,_,3,3)).
лодка(0,1).
лодка(0,2).
лодка(1,1).
лодка(2,0).
лодка(1,0).
безопасно(M,K):-M=:=0; M>=K.
ход(s(ML1,KL1,л,MR1,KR1), s(ML2,KL2,п,MR2,KR2)):-
    лодка(M,K), ML1>=M, KL1>=K,
    ML2 is ML1-M, KL2 is KL1-K, безопасно(ML2,KL2),
    MR2 is MR1+M, KR2 is KR1+K, безопасно(MR2,KR2).
ход(s(ML1,KL1,п,MR1,KR1), s(ML2,KL2,л,MR2,KR2)):-
    ход(s(MR1,KR1,л,ML1,KL1), s(MR2,KR2,п,ML2,KL2)).
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
14.11.2013, 20:14
Ответы с готовыми решениями:

Файловая система турбо пролога
а) создание файла; б) добавление элемента в файл; в) модификацию данных в файле; г) удаление элемента из файла; д) просмотр файла (вывод на...

Решение логических головоломок средствами Турбо-Пролога.
Кондратьев, Давыдов и Федоров живут на одной улице. Один из них - столяр, другой - маляр, третий - водопроводчик. Недавно маляр хотел...

Переделать небольшой код из С в С++
#include <stdio.h> #include <string.h> #include <ctype.h> int main() { char str, *p; printf ("String: "); gets(str); ...

6
6 / 2 / 2
Регистрация: 10.12.2011
Сообщений: 97
14.11.2013, 21:50  [ТС]
вот сам код, буду очень признателен.
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
28
29
% Константы: [0,0,0]-финиш, [1,3,3]- начало.
go(List,Out):- 
    findall(X,theEnd(List,X),Out), 
    not(Out=[]), !.
go(List,Out):- 
    findall(X,move(List,X),Xl), !, 
    go(Xl,Out).
theEnd(List,[[1,3,3]|A]):- 
    member([[1,3,3]|A],List).
move(List,[[C,Mn,Kn],[A,M,K]|W]):- 
    member([[A,M,K]|W],List), 
    C is 1-A, Z is C-A, d(Dm,Dk), Mn is M+Z*Dm,
    Mn>=0, 3>=Mn, Kn is K+Z*Dk, Kn>=0, 3>=Kn, 
    check(Mn,Kn), not(member([C,Mn,Kn],W)).
 
d(1,0). 
d(2,0). 
d(1,1). 
d(0,1). 
d(0,2).
 
check(M,K):- M=\=0, K>M ,!,fail.
check(M,K):- M=\=3, 3-K>3-M, !,fail.
check(_,_). 
 
member(A,[A|_]).
member(A,[_|B]):- member(A,B).
 
?-go([[[0,0,0]]],X),write(X).
0
 Аватар для Грымзик
2507 / 1483 / 37
Регистрация: 14.09.2009
Сообщений: 2,740
14.11.2013, 23:11
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
28
29
30
31
32
33
34
35
36
37
38
domains
s=s(integer,integer,string,integer,integer).
slist=s*
 
predicates
решить.
решить(s,slist,slist).
member(s,slist).
старт(s).
цель(s).
ход(s,s).
лодка(integer,integer).
безопасно(integer,integer).
 
clauses
member(X,[X|_]).
member(X,[_|Tail]):-member(X,Tail).
 
решить:-старт(S),решить(S,[S],R),write(R).
решить(S,R,R):-цель(S),!.
решить(S,P,R):-ход(S,Z),not(member(Z,P)),решить(Z,[Z|P],R).
старт(s(3,3,"л",0,0)).
цель(s(_,_,_,3,3)).
лодка(0,1).
лодка(0,2).
лодка(1,1).
лодка(2,0).
лодка(1,0).
безопасно(M,K):-M=0; M>=K.
ход(s(ML1,KL1,"л",MR1,KR1), s(ML2,KL2,"п",MR2,KR2)):-
    лодка(M,K), ML1>=M, KL1>=K,
    ML2 = ML1-M, KL2 = KL1-K, безопасно(ML2,KL2),
    MR2 = MR1+M, KR2 = KR1+K, безопасно(MR2,KR2).
ход(s(ML1,KL1,"п",MR1,KR1), s(ML2,KL2,"л",MR2,KR2)):-
    ход(s(MR1,KR1,"л",ML1,KL1), s(MR2,KR2,"п",ML2,KL2)).
 
goal
решить.
2
6 / 2 / 2
Регистрация: 10.12.2011
Сообщений: 97
14.11.2013, 23:13  [ТС]
спасибо большое!
0
 Аватар для Грымзик
2507 / 1483 / 37
Регистрация: 14.09.2009
Сообщений: 2,740
14.11.2013, 23:27
Думаю Вы не против, что я темы объединила, это же просто другой найденный вариант.
0
6 / 2 / 2
Регистрация: 10.12.2011
Сообщений: 97
15.11.2013, 00:22  [ТС]
можете удалить тему! больше не нужно)
0
0 / 0 / 0
Регистрация: 17.04.2013
Сообщений: 15
17.11.2013, 19:22
Но не могли бы вы мне слегка пояснить, что происходит вот в этих моментах

Prolog
1
2
3
решить:-старт(S),решить(S,[S],R),write(R).
решить(S,R,R):-цель(S),!.
решить(S,P,R):-ход(S,Z),not(member(Z,P)),решить(Z,[Z|P],R).
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
17.11.2013, 19:22
Помогаю со студенческими работами здесь

Нужно переделать код из С++ турбо в С++
Не понимаю некоторые функции . Остается только догадываться . #include <iostream> #include <string> #include <sstream>...

Переделать небольшой код с с++ на python
Добрый день, с плюсах я совсем ноль, не получается переделать код двумерного дерева фенвика на питон. Помогите пожалуйста. ...

Переделать код турбо паскаля в делфи
uses crt; var a,b,x:array of integer; mn:array of real; n,m,k,i,j:integer; buf:real; f:boolean; begin clrscr;...

Перевести код с Пролога в С#
domains n_list=integer* predicates append (n_list, n_list, n_list) clauses append (, L, L). append (, L2, ) :- append (L1,...

Какой версией Пролога запустить код?
Predicates fi(integer, integer) Clauses fi(0, 1). fi(1, 1). fi(N, X) :- N > 1, N1 = N - 1, fi(N1, X1), N2 = N - 2,


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер Написал заготовку: dotnet new console --aot -o UrlHandler var items = args. Split(":"); var tag = items; var id = items; var executable = args;. . .
Отправка уведомления на почту при изменении наименования справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере изменения наименования типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной. . .
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений. 9TO2GP2bpX4 a42b81fb172ffc12ca589c7898261ccb/ https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/ Слева синяя линия -. . .
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
SDL3 для Desktop (MinGW): Вывод текста со шрифтом TTF с помощью библиотеки SDL3_ttf на Си и C++
8Observer8 24.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-text-sdl3-c. zip finish-text-sdl3-cpp. zip
Жизнь в неопределённости
kumehtar 23.03.2026
Жизнь — это постоянное существование в неопределённости. Например, даже если у тебя есть список дел, невозможно дойти до точки, где всё окончательно завершено и больше ничего не осталось. В принципе,. . .
Модель здравоСохранения: работники работают быстрее после её введения.
anaschu 23.03.2026
geJalZw1fLo Корпорация до введения программа здравоохранения имела много невыполненных работниками заданий, после введения программы количество заданий выросло. Но на выплатах по больничным это. . .
Контроль уникальности заводского номера
Maks 23.03.2026
Алгоритм контроля уникальности заводского (или серийного) номера на примере нетипового документа выдачи шин для спецтехники с табличной частью, разработанного в конфигурации КА2. Номеклатура. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru