ВУЗ:
Составители:
Рубрика:
1. ЕСЛИ среда – кислота И концентрация – менее 70%
ТО среда – разбавленная кислота
2.
ЕСЛИ среда – кислота И концентрация – более 70%
ТО среда – концентрированная кислота
3.
ЕСЛИ среда – разбавленная кислота
ТО материал ванны – хромоникелевая сталь
4.
ЕСЛИ среда – концентрированная кислота
ТО материал ванны – углеродистая сталь
Требуется определить материал ванны при различных входных данных.
Программа на языке Пролог может иметь вид:
domains
A=symbol
D=symbol
predicates
is(A,A,D).
sreda(A,D,D).
conc(A,D,D).
mater(A,D,D).
ask_sreda(A).
view(D).
run.
database
fact_s(A).
fact_c(A).
goal
run.
clauses
is(“сернистая кислота“, “кислота“, L) :-
L=[“\n сернистая кислота = кислота“].
is(“азотная кислота “, “кислота“, L) :-
L=[“\n азотная кислота = кислота“].
sreda(“разбавленная кислота“,L,L2) :-
ask_sreda(X), is(X,_,L), ask_conc(C), conc(“менее 70%“,L,L1),
S=”\n среда=разбавленная кислота т.к.“,
S1=”\n среда=кислота“,S2=”\n И концентрация= менее 70%“,
L2=[S,S1,S2|L].
sreda(“концентрированная кислота“, L,L2) :-
fact_s(X), is(X,_,L), conc(“более 70%“,L,L1),
S=”\nсреда=концентрированная кислота т.к. “,
S1=”\nсреда=кислота“,S2=”\n И концентрация= более 70%“,
L2=[S,S1,S2|L].
ask_sreda(X) :-
write(“\n среда? “), readln(X), asserta(fact_s(X)).
ask_conc(C) :-
write(“\n концентрация? “), readln(С), asserta(fact_с(X)).
conc(C,L,L1) :-
fact_c(C), S=”\nконцентрация=“,
S1=C, S2=”\n т.к. было задано“, L1=[S,S1,S2|L].
mater(“хромоникелевая сталь“,L2,L3) :-
sreda(“разбавленная кислота“,_,L2), write(“\n Получено решение“),
S=”\nматериал ванны= хромоникелевая сталь“,
S1=”\nт.к. среда = разбавленная кислота“, L3=[S,S1|L2].
mater(“углеродистая сталь“,L2,L3):-
sreda(“концентрированная кислота“,_,L2),
write(“\n “), S=”\n материал ванны = углеродистая сталь“,
S1=”\n т.к. среда = концентрированная кислота“, L3=[S,S1|L2].
run :-
clearwindow, mater(_,_,L3), view(L3).
view([]).
view([S|L] :-
write(S), view(L).
Страницы
- « первая
- ‹ предыдущая
- …
- 37
- 38
- 39
- 40
- 41
- …
- следующая ›
- последняя »