24FreelanceБиржа фриланса, которая не спит
Завершён

Перенос программы с Turbo Prologa в Visual Prolog

759 просмотров 0 откликов#4940
Статус проекта
Завершён
БюджетПо договорённости
ФорматРазовый проектбез предоплаты
ОплатаНаличные, Банковский перевод
Приём заявокЗавершёндо 23.02.2017
Откликов0в среднем по разделу: 0,3
Просмотров75933 за 14 дней

Описание проекта

Есть экспертная система обнаружение неполадок автомобиля для Turbo Prolog. Программа задаёт вопросы, человек отвечает, в итоге получаем ответ программы. Какая неполадка имеется в автомобиле, по её признакам.
И есть база знаний.
Вопрос стоит таков, помогите перенести программу на Visual Prolog консоль. Плачу монету!

Код программы на Turbo Prolog и база знаний.

[HIGHLIGHT="prolog"]
DOMAINS
I=integer
S=string
C=char
Li=i*
DATABASE - knowledge
Cond(i,s)
Rule(s,li)
DATABASE - dialog
Cond_is(i,c)
PREDICATES
Start
Cars
Check(li)
Test_cond(i)
Update
Add_cond(li)
Print_cond(i,li,li)
Read_cond(c,li,li)
Ex_cond(i,li,li,i)
Wr_cond(c,i,li,li)
New_cond(i,li,li)
Read_true_char(c)
Test(c,c)
CLAUSES
Start:-
consult("exp.DDB",knowledge),
nl,nl,nl,nl, write("***** Help cars ****"),nl,
write("Pomochnik obnaryzgenia nepoladki"),nl,
write("Ovetite na voprosi, a ya ykazgy ploblemy"),nl,
cars,
retractall(_,dialog),
retractall(_,knowledge),
nl,nl,write("Mogy snova vam pomoch? (1 - da, 2 - net)"),
read_true_char(C),
C='1',!,start.
Start:-
nl,nl,write("************************ Vsego dobrogo! Do novih vstrech"),
readchar(_).
Cars:-
rule(X,L),
check(L),
nl,nl,write("************************ Expert sistema Help Cars"),nl,
write("* Opredelila nepoladku: ",X),nl,
write("ya prav? (1 - da, 2 - net)"),
read_true_char(C),C='1',!.
Cars:-
nl,nl,write("************************ Ya ne znayu, chto eto za polomka"),nl,
nl,write("Davaite dobavim ee' v bazu znani"),nl,
update.
Update:-
nl,write("Vvedie nepoladky:"),
readln(S),
add_cond(L),
assert(rule(S,L),knowledge),
save("exp.ddb",knowledge).
Add_cond(L):-
cond_is(_,'1'),!,
nl,nl,write("************************ O nepoladki izvestni, prichina: "),
print_cond(1,[],L1),
nl,write("Izvestno li o nem esho chto-nibud? (1 - da, 2 - net)"),
read_true_char(C),
read_cond(C,L1,L).
Add_cond(L):-
read_cond('1',[],L).
Print_cond(H,L,L):-
not(cond(H,_)),!.
Print_cond(H,L,L1):-
cond_is(H,'1'),!,
cond(H,T),
H1=H+1,
nl,write(T),
print_cond(H1,[H|L],L1).
Print_cond(H,L,L1):-
H1=H+1,
print_cond(H1,L,L1).
Read_cond('1',L,L2):-
ex_cond(1,L,L1,N),
new_cond(N,L1,L2),!.
Read_cond(_,L,L):-!.
Ex_cond(N,L,L,N):-
not(cond(N,_)),!.
Ex_cond(N,L,L1,N2):-
cond_is(N,_),!,
N1=N+1,
ex_cond(N1,L,L1,N2).
Ex_cond(N,L,L1,N2):-
cond(N,S),
nl,write("Y nee ",S,"? (1 - da, 2 - net)"),
read_true_char(A),
wr_cond(A,N,L,L2),
N1=N+1,
ex_cond(N1,L2,L1,N2).
Wr_cond('1',N,L,[N|L]):-!.
Wr_cond('2',_,L,L):-!.
New_cond(N,L,L1):-
nl,write("Est' esho prichini? (1 - da, 2 - net)"),
read_true_char(A),
A='1',!,
nl,write("Ukaghite new svoistvo, polomki"),nl,
nl,write("New otlichintelinoe cvoistvo nepoladki '"), readln(S),
assertz(cond(N,S)),
N1=N+1,
new_cond(N1,[N|L],L1).
New_cond(_,L,L).
Check([H|T]):-
test_cond(H),
check(T).
Check([]).
Test_cond(H):-
cond_is(H,'1'),!.
Test_cond(H):-
cond_is(H,'2'),!,
fail.
test_cond(H):-
cond(H,S),
nl,nl,write("Y vas ",S,"? (1 - da, 2 - net)"),
read_true_char(A),
assert(cond_is(H,A)),
test_cond(H).
Read_true_char(C):-
readchar(C1),
test(C1,C).
Test(C,C):-
'1'
Разработка программ Наличные, Банковский перевод
24
Твенти · совет

Как написать отклик, который выберут

  • Начните с задачи заказчика, а не с рассказа о себе.
  • Дайте одну-две похожие работы из портфолио.
  • Назовите цену и срок — и что именно в них входит.
  • Задайте один уточняющий вопрос — он начинает диалог.

Отклики 0

Тексты откликов видит только заказчик.

Тот же раздел

Похожие проекты

Все проекты раздела
Приложение инвентаризации склада со сканером штрихкодов

Приложение инвентаризации склада со сканером штрихкодов

Ищу разработчика мобильного приложения для складского учёта со сканированием штрихкодов, операциями прихода, расхода, ревизии и отчётами.

Разработка программ24.09.20260182
0откликов
Полезно знать
Как откликнуться на этот проект?

Войдите как фрилансер, опишите, как решите задачу, укажите цену и срок. Заказчик читает отклики и начинает диалог с лучшими.

Кто видит мой отклик?

Только заказчик, разместивший проект, и вы. Другие фрилансеры не видят ни текст, ни цену.

Где найти похожие заказы?

Новые проекты в разделе «Разработка программ» появляются каждый день. Все проекты раздела

ЗАКАЗЧИКАМ · БЕЗОПАСНАЯ СДЕЛКА

Нужен похожий проект? Разместите задание бесплатно за 30 секунд

Получите предложения от проверенных фрилансеров и оплачивайте результат только после приёмки через Безопасную сделку.

Разместить задание бесплатно →Как работает защита
ИСПОЛНИТЕЛЯМ · PAYORA 1-CLICK

Закрепите анкету в ТОП категории за $5 / неделю

Поднимите свой профиль и портфолио на 1-е место каталога (оплата в 1 клик через Payora) и получайте до 5× больше прямых заказов.

Закрепить в ТОП ($5/нед)Пополнить через Payora