1
include "first.inc"

predicates
nondeterm equation
nondeterm znach(integer)

goal
equation.
clauses

equation:- 
readint(R), 
znach(X1),
znach(X2),
znach(X3),
R = 100*X1+10*X2+X3,
write("X1=",X1," X2=",X2," X3=",X3),
readchar(_),
readchar(_). 
znach(B):-B=0; B=1,B=2,B=3,B=4,B=5,B=6,B=7,B=8,B=9.

При запуске открывается консоль, после чего, при вводе, она [консоль] просто закрывается.

1 Answers1

1

Вы путаете унификацию =/2 с деструктивным присваиванием (т.е. как в языке С и т.д.) или Вы просто ошиблись, вводя запятую (and) вместо точки с запятой (или), в предложении znach(B). В любом случае код мог бы иметь вид:

include "first.inc"

domains
int_list = interger*

predicates
nondeterm equation
nondeterm znach(integer)
nondeterm member(integer, int_list)

goal
equation.

clauses

equation:- 
    readint(R), 
    znach(X1),
    znach(X2),
    znach(X3),
    R = 100*X1+10*X2+X3,
    write("X1=",X1," X2=",X2," X3=",X3)
    readchar(_),
    readchar(_).

znach(B):-member(B, [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]).

member( _ , []).
member(B, [ X | Xs ]) :- member(B, Xs).