1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
auswertbar(X) :- number(X).
auswertbar(X + Y) :- auswertbar(X),auswertbar(Y).
auswertbar(X * Y) :- auswertbar(X),auswertbar(Y).
auswertbar(X - Y) :- auswertbar(X),auswertbar(Y).
auswertbar(X / Y) :- auswertbar(X),auswertbar(Y).
gleichungloesen(X = Y,R) :- auswertbar(X),not(auswertbar(Y)),gleichungloesen(Y = X,R).
gleichungloesen(X * Y = Z,R) :- auswertbar(Y), auswertbar(Z), S is Z/Y, gleichungloesen(X = S,R).
gleichungloesen(X / Y = Z,R) :- auswertbar(Y), auswertbar(Z), S is Z*Y, gleichungloesen(X = S,R).
gleichungloesen(X + Y = Z,R) :- auswertbar(Y), auswertbar(Z), S is Z-Y, gleichungloesen(X = S,R).
gleichungloesen(X - Y = Z,R) :- auswertbar(Y), auswertbar(Z), S is Z+Y, gleichungloesen(X = S,R).
gleichungloesen(X * Y = Z,R) :- auswertbar(X), auswertbar(Z), S is Z/X, gleichungloesen(Y = S,R).
gleichungloesen(X / Y = Z,R) :- auswertbar(X), auswertbar(Z), S is X/Z, gleichungloesen(Y = S,R).
gleichungloesen(X + Y = Z,R) :- auswertbar(X), auswertbar(Z), S is Z-X, gleichungloesen(Y = S,R).
gleichungloesen(X - Y = Z,R) :- auswertbar(X), auswertbar(Z), S is X-Z, gleichungloesen(Y = S,R).
gleichungloesen(X = Z,R) :- R=Z.
|