:- use_module(library(clpr)).

% Schaltkreiseanalyse:
% Schaltkreise:
% wider(R): Widerstand mit R Ohm
% reihe(S1,S2): Reihenschaltung von S1,S2
% parallel(S1,S2): Parallelschaltung von S1,S2

%sk(S,U,I) erfuellt, falls durch Schaltkreise S I Strom
%fliesst bei U Spannung
sk(wider(R),U,I) :- {U = R*I}.

sk(reihe(S1,S2),U,I) :-
	sk(S1,U1,I1), sk(S2,U2,I2),
	{ I=I1, I=I2, U=U1+U2 }.

sk(parallel(S1,S2),U,I) :-
	sk(S1,U1,I1), sk(S2,U2,I2),
	{ U=U1, U=U2, I=I1+I2 }.

% Hypothekberechnung:
% P: Kapital
% T: Laufzeit in Monaten
% IR: monatliche Zinssatz
% B: Restbetrag
% MP: monatliche Rueckzahlung
mortgage(P,T,IR,B,MP) :-
	{ T>=0, T=<1, B = P*(1+T*IR)-T*MP }.
mortgage(P,T,IR,B,MP) :-
	{ T>1 }, mortgage(P*(1+IR)-MP, T-1, IR,B,MP).
